#include <stdio.h>
int main()
{
int a[100];
int n;
int i;
int count;
int j=0;
int index=0;
scanf("%d",&n);
for(i=0;i<n;i++)
a[i]=i+1;
for(i=0,count=1;(n-index)!=1;i=(i+1)%(n-index),count++)
{
if(count%3==0)
{
for(j=i;j<n-index;j++)
a[j]=a[j+1];
count++; //判断是否是3(被3整除)
index++; //index记录淘汰了几个数
}
}
printf("%d\n",a[0]);
return 0;
}
约瑟夫问题(数到3的人出局,判断最后一个人是第几个)
最新推荐文章于 2024-08-02 17:09:09 发布