欢迎来到CClarence的博客!!

敲代码真的是一件令人感到上瘾的事情,在我二十多年的生活中,除了打DoTa,好像没有其他的另一件事也能让我如此乐此不疲。而前端恰恰是编程与界面的最前沿,它能让快速的让你感受到自己的成果,这是一件多么令人兴奋的事啊!!我希望在两年后我毕业的时候我能真的成为一位前端码农,在五年后我能成为一位NB的前端码农!!
----------CClarence写于2015年入冬。

001

Josephus问题

我的解法:

#include <iostream>
#include <list>

using namespace std;

int main()
{
    int i,j,n,m,mPrime,numLeft;
    list<int> L;
    list<int>::iterator iter;
    //初始化
    cout<<"enter N(# of people)&M(# of passes before elimination)";
    cin>>n>>m;
    numLeft=n;

    mPrime=m%n;
    for(i=1;i<=n;i++)
    {
        L.push_back(i);
        
    }
    iter=L.begin();
    for(i=0;i<n;i++)
    {
        mPrime=m%numLeft;
        
            for(j=0;j<mPrime;j++)
            {
                iter++;
                if(iter==L.end())
                    iter=L.begin();
            }
        
        
        cout<<*iter<<" ";
        iter=L.erase(iter);
        numLeft-=1;
        if(iter==L.end())
            iter=L.begin();
    }
    cout<<endl;
    return 0;
}

 

posted @ 2016-01-20 18:37  CClarence  阅读(99)  评论(0编辑  收藏  举报