「C语言程序设计」约瑟夫环问题

小微 科技「C语言程序设计」约瑟夫环问题已关闭评论114字数 669阅读模式
摘要编号为 1,2,3,…,n 的 n 个人围坐一圈,任选一个正整数 m 作为报数上限值,从第一个人开始按顺时针方向报数,报数到 m 时停止,报数为 m 的人出列。从出列人的顺时针方向...

编号为 1,2,3,…,n 的 n 个人围坐一圈,任选一个正整数 m 作为报数上限值,从第一个人开始按顺时针方向报数,报数到 m 时休止,报数为 m 的人出列。

从出列人的顺时针方向的下一个人开始又从 1 从新报数,如斯下去,直到所有人都全体出列为止。文章源自微观生活(93wg.com)微观生活-https://93wg.com/17588.html

算法思想文章源自微观生活(93wg.com)微观生活-https://93wg.com/17588.html

每一个人的编号寄存在一个数组 a 中,主函数中抉择人数的个数和报数的上限值 m,设计一个函数实现对应的操作。函数的形参有整型数组 a、整数 n 以及 m,n 用来接管传递的人数,m 用来接管报数上限,函数的返回值为空;函数体中输出出列人的顺序。文章源自微观生活(93wg.com)微观生活-https://93wg.com/17588.html

函数中应用循环走访数组中 n 个元素,每一次走访元素,设定内循环连续走访 m 个元素,元素走访的下标为 k,走访到第 m 个元素时,如果元素不是 0,此时输出元素 a[k],再设定 a[k] 为 0,继续走访后面的元素。文章源自微观生活(93wg.com)微观生活-https://93wg.com/17588.html

主函数中设定数组 a,从键盘输入 n 以及 m,应用循环发生 n 的位置序号寄存到数组 a 中,调用函数实现相应的操作。文章源自微观生活(93wg.com)微观生活-https://93wg.com/17588.html

程序代码:文章源自微观生活(93wg.com)微观生活-https://93wg.com/17588.html

input n and m:15 4文章源自微观生活(93wg.com)微观生活-https://93wg.com/17588.html

output:文章源自微观生活(93wg.com)微观生活-https://93wg.com/17588.html

4 8 12 1 6 11 2 9 15 10 5 3 7 14 13文章源自微观生活(93wg.com)微观生活-https://93wg.com/17588.html

100 个人围坐在一 起,报数上限为 9 时的出列顺序如下所示:文章源自微观生活(93wg.com)微观生活-https://93wg.com/17588.html

input n and m:100 9

output:

9 18 27 36 45 54 63 72 81 90 99 8 19 29 39 49 59 69 79 89 100 11 22 33 44 56 67

78 91 2 14 26 40 52 65 77 92 4 17 32 47 61 75 88 5 21 37 53 70 85 1 20 38 57 74

94 12 31 51 73 95 15 41 62 84 7 34 60 86 13 43 71 98 30 66 97 35 76 10 50 93 42

83 28 87 48 6 68 46 23 3 96 16 25 64 55 58 24 80 82

 
小微
  • 版权声明: 本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们(管理员邮箱:81118366@qq.com),情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!
  • 转载请务必保留本文链接:https://93wg.com/17588.html