您的位置:首页 > 其它

报数

2016-05-17 22:41 211 查看
其实就是约瑟夫环问题,地推公式如下:i为参与报数的人数,f[i]为报数m结束时最后留下来的人的编号。

f[1] = 0

f[i] = (f[i-1]+m)%i

代码

#include <iostream>
using namespace std;
int m = 3;
void JosephusProblem(int n) {
int i;
int f = 0;
for (i = 2; i <= n; i++) {
f = (f + m) % i;
}
printf("%d\n", f + 1);
return;
}

int main() {
int n, m;
while (cin >> n) {
JosephusProblem(n);
}
return 0;
}


加油!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: