- /*约瑟夫(Josephus)问题:一群猴子围成一圈,从第1只猴子起顺时针数到第m个猴子时,该猴子便出围。
- 继续不断数下去,猴子不断出围,最后剩下的一只猴子就是猴大王。问猴大王是第几只猴子?算法的关键是
- 如何用数组表示圆圈,方法就是"加1求模"。可以给顺序表模板类添加一个Josephus()成员函数实现该算法。*/
- #include<iostream>
- using namespace std;
- #include"Ex7_10_1.h"
- int main(){
- seqlist <int> seq;
- int a,m;
- cout<<"请输入猴子总数和报数停止数:"<<endl;
- cin>>a>>m;
- cout<<"猴大王下标为:"<<seq.Josephus(a,m)<<endl;
- return 0;
- }