用数组来遍历

#include<stdio.h>

int main()
{
    int arr[100]={0};
    int n=0;
    int k=0;
    int m=0;
    scanf("%d%d%d",&n,&k,&m);
    int cur=1;//报的序号
    for(int i=0;i<n;i++)
    {
        arr[i]=1;
    }
    int i=k-1;//遍历的编号编号,由于数组特性要减一
    int peo=n;//记录剩余人数
    
    while(peo!=1)
    {
        if(i>=n)
        {
            i=0;//人数报完了就重置
        }
        if(arr[i]==0)
        {
           i++;
           continue;//没有人了,就不能继续报数了,直接跳过即可
           
        }
        if(cur==m)
        {
            //需要判断淘汰后的情况
            
            arr[i]=0;
            peo--;
            cur=0;
        }
        
        cur++;
        i++;
    }
    for(i=0;i<n;i++)
    {
        if(arr[i]==1)
        {
            printf("%d\n",i+1);
            break;
        }
    }
    return 0;
}
全部评论

相关推荐

06-12 17:46
门头沟学院 Java
运营你豪哥:来说重点: ​1.项目前置,时间倒序。​​ 2.​项目描述强化结果与量化效果(STAR原则里的R)。​​ ​3.个人技能精炼,明确掌握程度,突出核心。​​ ​4.增加强有力开头的个人总结部分。​​ 5.​优化教育背景(成绩排名)、合并奖项与活动。​​
听劝,我这个简历该怎么改...
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务