poj 2244(约瑟夫问题。。。)

来源:互联网 发布:mac的dns 编辑:程序博客网 时间:2024/05/18 18:18

这个和1012题 如出一辙。。。相比之下还要简单一些。。。。直接应用约瑟夫递推公式枚举求解就可以了。。。

#include <iostream>#include<cstdio>using namespace std;int main(int argc, char** argv) {    int n, a[155] = {0}, k, m, i;    while (scanf("%d", &n) && n) {        if (!a[n]) {            m = 1;            while (1) {                k = 0, m++;                for (i = 2; i < n; i++)                    k = (k + m) % i;                k = (k + 1) % i;                if ((k+1) == 2) {                    a[n] = m;                    printf("%d\n", m);                    break;                }            }        } else            printf("%d\n", a[n]);    }    return 0;}


原创粉丝点击