您的位置:首页 > 其它

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

2017-12-12 18:12 429 查看
#include<stdio.h>

int main()
{
int a[1000] = {0};
int s = 0;
int sum = 0;
int i = 0;
int n = 0;

printf("please input number:\n");
scanf("%d",&n);                         //输入圈内有几个人

for(i = 0;i <= n;i++)
{
a[i] = 1;
}
for(i = 1;i <= n;i++)
{
s = s + a[i];                           //S计数,满三计数清零
if(s == 3)
{
s = 0;
a[i] = 0;
sum++;
}
if(i == n)                              //到标号最大继续循环报数
{
i = 0;
}
if(sum == n- 1)
{
for(i = 1;i <= n;i++)               //n=n-1时遍历找到报数为1
{

9554
if(a[i] == 1)
{
printf("the last one is %d\n",i);
}
}

break;
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐