黑马程序员技术交流社区
标题:
一圈人报数那题好难
[打印本页]
作者:
baiiiu
时间:
2014-9-14 09:05
标题:
一圈人报数那题好难
就是一圈人,从1开始报数,没报到3退出,这题好难啊,求大神
作者:
Dale
时间:
2014-9-14 10:05
什么报数!看的很模糊!
作者:
七年级生
时间:
2014-9-14 11:32
是那个耶稣的叛徒的问题。是吧?
作者:
安然一笑
时间:
2014-9-14 12:03
我也是参考了论坛一个大神的代码,写的简洁易懂,你参考参考,要自己理解哦
#include<stdio.h>
int main()
{
//用0来记录没有数到3的人
int flag[15] ={0};
//记录剩余的人数
int num = 15;
int i = 1;//记录数到几
int j = 15;//用于记录循环的数
//如果人数不是最后一个,就继续循环
while(num > 1)
{
//开始数
//如果数到的数不是3并且标志是0就继续往下数(这里就相当于把标志不为0的人退出队伍)
if((flag[j%15] == 0) && ( i != 3))
{
i++;
}
else if((flag[j%15] == 0) && ( i == 3))
{//如果数到的数是3并且标志是0,就把标志置为1,把i赋值为0,并且把剩余的数减去1
flag[j%15] = 1;
i = 1;
num--;
}
j++;//循环的数
}
//上面循环到最后一个数的时候会跳出,最后一个数的标志为0
for(int i=0; i < 15;i++)
{
if(flag[i] == 0)
{
printf("出卖耶稣的叛徒是:%d\n",i+1);//因为i是从0开始的,所以加1
}
}
return 0;
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2