/*-----------------------------------------------------------------------
【程序设计】
-------------------------------------------------------------------------
题目:键盘输入一个整数n,由这n 个人围成一圈,顺序排号。从第一个人开始报数
(从1 到3 报数),凡报到3 的人退出圈子,问最后留下的是原来第几号的那位
输入输出如下
【请输入整数n: 】99
最后留下的是原来第88 号的那位
-------------------------------------------------------------------------
注意:请勿改动程序中的其他内容,函数中所需变量根据需要自定义变量名。
------------------------------------------------------------------------*/
#include <stdio.h>
int josephus(int n)
{
    /**********Program**********/
	int a[n],i,count = 0,k=0;
	i=n-1;
	while(i>=0){
	 	a[i]=1;
	 	i--;
	}
	while(count<n){
		if(a[i]!= 0){
			k++;
			if(k%3 == 0){
				a[i] = 0;
				count++;
			}
		}
	 	i=(i+1)%n;
	}
	return i;
    /********** End **********/
}
int main()
{
    int n;
    int result;
    printf("【请输入整数n: 】");
    scanf("%d", &n);
    result = josephus(n);
    printf("最后留下的是原来第%d 号的那位\n", result);
    return 0;
}