普通网友 2016-12-06 02:01 采纳率: 0%
浏览 983

在线采纳在线等求解答C语言编程

个人围成一圈,1,2,3循环报数,报到3的人退出,并将退出的序号依次存到数组p中,包括最后一个人的序号。到最后只余1人,输出最后留下的是第几号(最初的序号,以1起始)。若m=6,则输出n=1 3 6 4 2 5 1;若m=10,则输出n=4 3 6 9 2 7 1 8 5 10 4;若m=100,则输出n=91 3 6 9……100 58 91。函数int fun(int n ,int p[ ])实现上述功能,返回n个人中最后余的1人的起始序号,并将退出的序号顺序写入p指向的数组中。。
#include
int baoshu(int n ,int p[ ] )
{ …… }
int main()
{int m,a[1000],i,num;
printf("人数:");
scanf("%d",&m); //此处的m要小于等于1000
num= fun(m,a);
printf("最后退出的序号是:%d\n",num);
puts("退出的顺序是:");
for(i=0;i<m;i++)
printf("%d ",a[i]);
printf("\n");
return 0 ;
}

  • 写回答

2条回答 默认 最新

  • T_world 2016-12-06 02:10
    关注

    约瑟夫环问题,非常经典的一个算法问题,百度可以得到很多答案

    评论

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料