题解 | #约瑟夫环#

约瑟夫环

https://ac.nowcoder.com/acm/problem/22227

#include <stdio.h>
int main()
{
    int n, k, m;
    scanf("%d %d %d", &n, &k, &m);
    int i=0,j=1,cnt=0;
    int a[10000];
    for (i = 0; i < n; i++)
    {
        a[i] = 1;
    }
    i = k;
    while(cnt!=n-1)
    {
        if (i>n-1||j>m)
        {
            if(i>n-1)
            i = 0;
            if(j>m)
            j=1;
            continue;
        }
        while(a[i]==0)
        {
            i++;
        }
        if (i>n-1||j>m)
        {
            if(i>n-1)
            i = 0;
            if(j>m)
            j=1;
            continue;
        }
        if(j==m)
        {
            a[i] = 0;
            j = 1;
            cnt++;
            i++;
            continue;
        }
        j++;
        i++;
        if (i > n-1 ||j>m)
        {
            if(i>n-1)
            i = 0;
            if(j>m)
            j=1;
        }    
    }
    for (i = 0; i < n; i++)
    {
        if (a[i]!=0)
            printf("%d\n", i);
    }
    return 0;
}
全部评论

相关推荐

北枳的南橘:建议大家务必去和他沟通一下,像极了小学生对你侃侃而谈国际局势😂
找AI工作可以去哪些公司...
点赞 评论 收藏
分享
找工作勤劳小蜜蜂:矛盾是没有实习,就是没实战经验,公司不想要,公司不要,你就没有实习,你就进入死循环,另外你的项目不是社会现在有大量岗位存在行业用的,云存储人员早就饱和。
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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