题解 | #约瑟夫环#

约瑟夫环

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面试。这周更离谱,一个新的面邀都没有说好的金九银十呢?
牛客58830004...:九月到现在只有一场三七互娱的线下面试,java 无实习能找到工作吗 哥能告诉我客户端有希望吗,怎么转客户端
我的秋招日记
点赞 评论 收藏
分享
09-23 15:37
门头沟学院 Java
真的很糟糕:新的卡简历方式
我的秋招日记
点赞 评论 收藏
分享
点赞 评论 收藏
分享
昨天 15:55
门头沟学院 Java
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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