C++書き込みクラシックアルゴリズム
4297 ワード
C++書き込みクラシックアルゴリズムジョセフリング問題 二重鎖表解法 配列シミュレーション(大配列) 再帰法 ジョセフループ問題
n人(n<=100)を1周し、最初の人から数え、mまで数えた人が列を出て、次の人から再び1から数え、mまで数えた人が輪を出て、......順番に類推し、すべての人が輪を出るまで、順番に輪を出た人の番号を出力してください.
デュアルチェーンテーブル解法
アレイシミュレーション(大配列)
再帰法
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;//
}
再帰法