Mark11


私信TA

用户名:Mark11

访问量:26450

签 名:

懒惰,傲慢,愤怒

等  级
排  名 362
经  验 5239
参赛次数 0
文章发表 47
年  龄 20
在职情况 学生
学  校 NorthWest University
专  业 S.E

  自我简介:

从头来过的苦逼

注意事项:
                    这题和前面的一道报3退圈的,很像。这里采用的数组模拟方法,是之前一位dalao的。
参考代码:


#include<stdio.h>
#include<stdlib.h>
int main(){
    int n;
    while(scanf("%d",&n)!=EOF){
        int *team;
        team = (int *)malloc(sizeof(int)*n);
        for(int i=0; i<n; i++){
            team[i] = 1;
        }
        int m;
        scanf("%d", &m);
        int counter = 0;
        int leave = 0;
        for(int i=0; i<n; i++){
            if(team[i]!=0){
                counter++;
            }
            if(counter==m){
                team[i] = 0;
                leave++;
                counter = 0;
            }
            if(i==n-1){
                i = -1;
            }
            if(leave==n-1){
                break;
            }
        }
        for(int i=0; i<n; i++){
            if(team[i]==1){
                printf("%d\n", i+1);
            }
        }
    }
    return 0;

}


 

0.0分

0 人评分

  评论区

  • «
  • »