约瑟夫环数组解

84 阅读1分钟

船上一共15人,海盗来袭玩个杀人游戏:报道3的人不杀.问开始编号为多少的人没被杀.

#include <stdio.h>
#include <stdlib.h>
int main()
{
    ///约瑟夫环数组解
    int a[110]={0};///0说明未出局
    int n,m;
    scanf("%d%d",&n,&m);
    int i=0,j=0,k=0;///i控制总人数
    while(i!=n){///i==n说明人全部被排除,结束循环
        j++;///从左到右报数
        if(j>n)j=1;///报数大于总人数时,重报
        if(a[j]==0){///
            k++;///控制第几个人报道m
            if(k==m){
                a[j]=1;
                i++;
                printf("%d ",j);
                k=0;

            }
        }

    }


    return 0;
}

在这里插入图片描述