您的位置:首页 > 运维架构 > Linux

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

2018-03-10 20:59 337 查看
#include<stdio.h>

int main()
{
int n, count, i;
int cn = 0;
int p = 0;
int index = 0;

printf("请输入!\n");
scanf("%d", &n);
int a
;
count = n;//对非0计数
for(i = 0; i < n; ++i) a[i] = i + 1;
while(1)
{
count = 0;
for(i = index - n * p; i < n; ++i)
{
if(a[i] != 0 )
{
count += 1;
cn += 1;
if(cn == 3)
{
cn = 0;
a[i] = 0;
}
}

index += 1;
}
p += 1;
if(count == 1) break;
}
for(i = 0; i < n; ++i)
{
if(a[i] != 0)
{
printf("%d\n",a[i]);
}
}

return 0;
}
这条编程题最主要的是如何将给定的几个人围成一圈, 我是利用"index"和"p"两个变量来连接第一个人和最后一个人的.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐