热门

最新

红包

立Flag

投票

同城

我的

发布
m0_56985685
望山河揽星月
5 年前
truem0_56985685

30个人(编号为0~29)围成一圈,从第0号开始报数1,凡报到n(n为输入数据,n>=1)的人离开圈子,后面的人再从1开始报数,照此进行下去,最后留下的为原来第几号?要求用一维数组实现算法,输出最后留下的1个人的数组下标。


#include "stdio.h"
int main()
{ int a[30]={1},m,n,i,r;
scanf("%d",&m);
for(n=30,r=0;n!=1;)
{for(i=0;i<m;r++)
{if(r>29) r=r-30;
if(a[r]!=0) i++;}
a[r-1]=0; n=n-1; }
for(r=0;a[r]!=0;r++);
printf("%d",r);
}
大佬指教一下 我写的哪里有问题吗

你问我答
CSDN App 扫码分享
分享
评论
点赞
打赏
  • 复制链接
  • 举报
下一条:
立即登录