当前位置:神舟问>百科问答>C语言约瑟夫出圈问题

C语言约瑟夫出圈问题

2023-10-13 23:18:09 编辑:join 浏览量:539

问题补充说明:幼儿园的小朋友们刚学习了如何数数,阿姨在下课时组织大家一起玩游戏。规则如下:所有的小朋友绕成一圈,顺序排号,从第一个小朋友开始报数,凡是报到固定数字(例如5)的,都退出该游戏,直到只剩下一位小朋友游戏才中止。 每个小朋友都希望自己能有更多的练习数数的机会,所以都希望成为最终被留下的那位。 现在,请大家帮小朋友们计算一下,在第一次排号的时候排到第几位才能成为最终被留下的小朋友。 输入: 小朋友的个数(<=50) 要被练习的数字 输出: 最终被留下的小朋友的序号 说明: 如“要被练习的数字”是5,则每次数到5的同学要退出该游戏下面这个程序没看懂,哪位大神能够注释一下?#include void main() { int a[51],i,j,x,n; scanf("%d %d",&n,&j); for ( i=0;i<=n-2;i++) a[i]=i+1;a[n-1]=0;x=n-1; while( a[x]!=x ) { for( i=1;i<=j-1;i++) x=a[x]; a[x] = a[a[x]]; } printf( "The left child is NO %d.",x+1 ); }

C语言约瑟夫出圈问题

#include<stdio.h>//定义头文件

voi培dmain()//来自主函数

{

inta[51],i,j,x,n;//定义变量和数组

scanf("%d%d",&n,&j);//从输入终端输入变量

for(i360问答=0;i<=n-2;i++)a[i室变亲激]=i+1;a[n-1]=0;x=n-1;//用for语句实现第一个循环,表示出圈的人数

while(a[x]!=x)//while语句判断数组内标记的人是否出圈

{for(i=1;i<=j-1;i++)

诉输映就之混父x=a[x];标记严受效培板挥酒坚出圈的人

a[x]=a[a[x]];

}

printf("犯夫哪谁措某手即深TheleftchildisNO%d.",x+1);输出

}

这个程序虽然简单,但新手最好别这么写!

如果需要,我可以给你写一个能看懂的!

欢迎追问,望采纳!

标签:出圈,C语言,约瑟夫

版权声明:文章由 神舟问 整理收集,来源于互联网或者用户投稿,如有侵权,请联系我们,我们会立即处理。如转载请保留本文链接:https://www.shenzhouwen.com/answer/184191.html
热门文章