1. 程式人生 > >And Then There Was One

And Then There Was One

題解:
1.約瑟夫環變形
2.倒著推:
最後剩一個人,如果把他編號為一號
然後推如果剩倆人,他是對應的幾號
然後如果三人,這個人對應的幾號。。。。
總結:
1.記得約瑟夫環問題,大一上思考了一個學期,大二上思考了半節課,現在思考了幾分鐘就推出來了,可能一個是我知道的知識多了,二是,我清楚為何要這麼推了,這就是一個人解決問題的思路。所以,思考問題的方式很重要,養成一個好的思維模式很重要
2.發現與人合作的問題了,以前就不知道如何與人合作,總覺,啥都能自己做,但是現在想一想,只是自己太過自負,不願意學習他人的長處,不願意解決這個自己的缺點!我希望能慢慢學習與人合作,就像解決演算法題一樣,解決掉這個問題!

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
const int MAXN = 10005;
int d[MAXN];
int main()
{
    int n,k,m;
    while(cin >> n >> k >> m && n && k && m)
    {
        d[1] = 0;
        for(int i = 2;i < n;i++)d[i] = (d[i - 1
] + k) % i; cout << (d[n - 1] + m) % n + 1 << endl; } }