题目 4、约瑟夫问题:n 个人围成一圈,从 1 开始顺序编号;游戏开始,首先生
成一个 1-n 区间内的随机数,从第一个人开始由 1 到 m 循环报数,报到 m 的人
退出圈外,问最后留下的那个人原来的序号。
#include<iostream>
using namespace std;
int yuesefu(int n, int m)
{
int i, j = 0;
for (i = 2; i <= n; i++)
j = (j + m) % i;
return (j + 1);
}
int main()
{
int m, n;
cout << "请输入人数。" << endl;
cin >> n ;
m = rand() % n + 1;
cout << "随机数是" << m << endl;
cout << "最后留下来的是第" << yuesefu(n, m) << "个数" << endl;
return 0;
}