
2个回答
展开全部
int a[N]={1};
int i=0,t=N,j=0;
while(t==1) //如果还剩下一个人,跳出循环
{
if(i==N) //这里是头尾衔接成一个圈
i=0;
if(a[i]!=0) //这里是计数报数
j++;
if(j==2) //这里是出圈子的人
{
a[i]=0;
j=0;
t--;
}
i++;
}
for(i=0;i<N;i++)
if(a[i])
printf("%d",i+1);
int i=0,t=N,j=0;
while(t==1) //如果还剩下一个人,跳出循环
{
if(i==N) //这里是头尾衔接成一个圈
i=0;
if(a[i]!=0) //这里是计数报数
j++;
if(j==2) //这里是出圈子的人
{
a[i]=0;
j=0;
t--;
}
i++;
}
for(i=0;i<N;i++)
if(a[i])
printf("%d",i+1);
更多追问追答
追问
应该是while(t!=1)吧?不过我想问的是最后那个for循环的含义
追答
嘿嘿,写错了,是while(t!=1)
最后那个for是输出最后剩下的那个编号是谁
2012-05-26
展开全部
可以用链表。for循环,每3次删掉一个节点。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询