黑马程序员技术交流社区
标题:
耶稣被15个徒弟中的一个出卖问题,圆圈123报数
[打印本页]
作者:
葛先生
时间:
2015-4-15 09:50
标题:
耶稣被15个徒弟中的一个出卖问题,圆圈123报数
#include <stdio.h>
int main()
{
int a[15]; //定义数组
for(int i=0;i<15;i++) //给数组成员编号复值;
{
a[i]=i+1;
}
prinf("出卖耶稣的是%d\n",test(sizeof(a)));
return 0;
}
int test(int a) //利用递归。
{
int sum=15; //剩余人数。
int num=a; //需要报数的人数。
int t=1; //第一个人报的数
for(int i=t;i<num+1;i++) //int i=t主要是后面如果最后一个人报数不是3时,第一个人接着报数的号数为t。
if(i==3)//报到3就移除,报数人数-1。
{
a[i]=0; //把报数为3的赋值为0,用来最后排除
i=0;
num--;
}
{
if(num==1);//只剩下一个人时,结果出来了。
{
return a[i];
}
if(a[i]==num) //遍历到最后一个人,
{
if(i!=3&&a[i]!=0) //圆圈循环报数,使下次循环第一个人报数接着前面一个人的数报。
{
num--;
t==i+1;
}
int test(num=count);
}
}
}
不知道这次能行了没:L
作者:
丶小千
时间:
2015-4-15 12:22
约瑟夫环问题,现在闭上眼都能敲出来了,网上的解法不少,楼主有兴趣可以百度
作者:
葛先生
时间:
2015-4-15 12:33
丶小千 发表于 2015-4-15 12:22
约瑟夫环问题,现在闭上眼都能敲出来了,网上的解法不少,楼主有兴趣可以百度 ...
我这是自己想了好几天解决的。有点看不懂他们那个
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2