1056: 约瑟夫问题【n人围成一圈,报数为3的人退出圈子,问最后留下的人原来的编号。】

Description

有n人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位。

Input

初始人数n

Output

最后一人的初始编号

Sample Input

3

Sample Output

2

 Note:

这题 “报数为3的人退出”,这个条件可以改为 “报数为k的人退出”,输入 n, k,而后将 while 里面的 m==3 改为 m==k 即可。

#include 
#define N 1000

int main()
{
    int a[N], n, m, i, count;
    scanf("%d", &n);
    for(i=0; i

你可能感兴趣的:(算法)