C++書き込みクラシックアルゴリズム


C++書き込みクラシックアルゴリズム
  • ジョセフリング問題
  • 二重鎖表解法
  • 配列シミュレーション(大配列)
  • 再帰法
  • ジョセフループ問題
    n人(n<=100)を1周し、最初の人から数え、mまで数えた人が列を出て、次の人から再び1から数え、mまで数えた人が輪を出て、......順番に類推し、すべての人が輪を出るまで、順番に輪を出た人の番号を出力してください.
    デュアルチェーンテーブル解法
    アレイシミュレーション(大配列)
    #include
    #include
    using namespace std; 
    int a[100001];//    
    int main(){
        int bs=1,h=1,t,i,n,m;
        cin>>n>>m;
        for(i=1;i<=n;i++)
    		a[i]=i;
        t=n+1;
        while(h<t){
            if(bs!=m){
                bs++;		//    
                a[t]=a[h];
                t++;
                h++;
            }
            else{
                cout<<a[h]<<"  ";//   
                bs=1;
                h++;
            }
        }
       
        return 0;//  
    }
    
    

    再帰法