信息学奥赛一本通中的约瑟夫问题,使用一维数组求解。此解法适用刚学习数组的同学
#include <iostream>
using namespace std;
int a[1001] = {};
int main() {
int n, m; //n是参与人数 m是游戏数字
cout << "请输入参与游戏的人数 n=";
cin >> n;
cout << "请输入游戏数字 m=";
cin >> m;
while (n != 1) {
int i = 1;
for (; i <= m; i++) {
for (int j = 1; j <= n; j++)
a[j - 1] = a[j];
a[n] = a[0];
}
cout << a[n] << ' ';
n--;
}
cout << a[1];
return 0;
}