标题:问个数组的josephus问题
取消只看楼主
狂啃基础
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2004-10-13
 问题点数:0 回复次数:3 
问个数组的josephus问题

17个人围个圈报数,3的倍数的人离开,一直到最后一个人,然后求这个人的编号

程序如下:

#include <iostream.h> const int num=17; void main() { int interval=3; int a[num]; for(int m=0; m<num; m++) cout <<(a[m]=m+1) <<","; cout <<endl; int i=(interval-1)%num; for(int k=1; k<num; k++){ cout <<a[i] <<","; a[i]=0; for(int j=1; !(a[i]&&(j++==interval)); i=(i+1)%num); //数数 } cout <<"\nNo." <<a[i] <<" boy has won.\n"; //输出胜利者 }

程序我看的有点晕,特别是这句int i=(interval-1)%num 有点不太明白,请赐教~ 谢谢~

搜索更多相关主题的帖子: josephus 
2004-10-13 17:07
狂啃基础
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2004-10-13
得分:0 
一天了,怎么连个人影都没看见,这题应该难不到众斑竹吧?

2004-10-14 22:35
狂啃基础
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2004-10-13
得分:0 

谢了,斑竹,不过我看的是钱能C++的书上程序啊,那不是C++是什么呢?

是不是程序有点乱和简化?


2004-10-15 10:07
狂啃基础
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2004-10-13
得分:0 

呵呵 我知道拉 但是我还是初学者

面向对象还不熟悉~


2004-10-15 17:16



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-6472-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.160316 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved