求解一道编程题~~~

hlj3171 2007-04-21 01:06:27
题目:约瑟夫问题:有N个小孩围成一圈,给他们从1到N依次编上号。现指定从第s个小孩开始报数,报到第m个时,该小孩出列。然后从下一个小孩开始报数,仍是报到m个出列。如此重复下去,直到所有的小孩都出列。试求小孩出列的顺序。
...全文
222 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
dave080 2007-04-21
  • 打赏
  • 举报
回复
厉害
bargio_susie 2007-04-21
  • 打赏
  • 举报
回复
参考下,你可以用键盘控制1-N里N的大小,也就是这里的M.
s也就是这里的N.
bargio_susie 2007-04-21
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <stdlib.h>
#define M 2000
#define N 2
int main()
{
int data[M] ;
int i=0 ;
int left = M ;
int cur = 0 ;
for(i=0; i<M; i++)
data[i] = 1 ;
i=0;
while(left > 1)
{
if(data[i])
{
if(++cur == N)
{
cur = 0 ;
data[i] = 0 ;
if(i==0)
i=M;
printf("output %d.\n", i) ;
left-- ;
}
}

i = (++i)%M ;
}
for(i=0; i<M; i++)
if(data[i])
{
if(i==0)
i=M;
printf("output %d.\n", i) ;
}
system( "pause" );
return 0 ;
}

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧