第9講 関数の再帰的使用
第5話 2次順列を関数の再帰的使用を使わずにfor文で実現する
2次順列生成プログラム
#include<iostream> //入出力のために組み込む
using namespace std; //coutを使うために必要なお呪い
void f(int n);
int main() {
f(2);
return(0);
}
void f(int n){
int i,j,k,h,x[20],cn=0;
for(i=0;i<n;i++){
x[0]=i+1;
for(j=0;j<n;j++){
h=1;
if(j+1==x[0])h=0;
if(h==1)x[1]=j+1;
if(h==1){
cn++;
for(k=0;k<n;k++)cout<< x[k] <<" ";
cout << endl;
}
}
}
cout<< "生成された順列は" << cn << "個です"
<<endl;
}
実行画面
1 2
2 1
生成された順列は2個です。
次は3次順列生成プログラムへの挑戦です。
頭が爆発するほど難しいですが、
粘り強く開発して下さい。