作业帮 > 综合 > 作业

这是一道编程题,限时1000ms,我超时.

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/12 05:42:57
这是一道编程题,限时1000ms,我超时.
在森林王国中,每年会都会评选一个幸运之星.他们的评选规则是这样的.先把候选的动物围成一圈,编号从1-n.然后选择一个审判数字.开始从第一个候选动物开始,从1开始数,数到这个审判数字对应的候选动物就遭淘汰,剩下的动物再按原来的顺序围成一个圈.然后从他下一个动物开始,接着又从1开始数,再数到审判数字对应的动物被淘汰.依次类推,直到只剩下最后一个幸运的动物为止.这个动物就是该年的幸运之星.例如:有1,2,3,4四个动物,如果审判数字为2,则开始从第一个动物从1开始数,淘汰了2,剩下1 3 4,继续从编号为3的动物开始从1开始数,淘汰了4,剩下了1 3,然后从1的一个动物从1开始数,淘汰了3.那么1就是这年的幸运之星.如果选择的审判数字是4,那么这次的幸运之星就是2号动物.现在,需要你编写一个程序,来实现自动的判断出谁是幸运之星.
输入
开始一个整数n表示有n组测试数据.
每组测试数据包括两个整数,分别是动物的个数m(20;sum--)
{
int some[11],num,i,shu,ko,a;
scanf("%d%d",&shu,&num);
ko=shu;
for(i=1;i1)
{
for(a=1;ashu)
i=1;
while(some[i]==0)
i++;
if(i>shu)
i=1;
i++;
if(i>shu)
i=1;
while(some[i]==0)
i++;
if(i>shu)
i=1;
a++;
}
if(a=num)
{
some[i]=0;
ko--;
i++;
}
}
for(i=1;i
这个约瑟夫问题,你可以参考一下百度百科.