第9講 関数の再帰的使用
第5話 2次順列を関数の再帰的使用を使わずにfor文で実現する
2次順列生成プログラム
#include<stdio.h>
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++)printf("%d ",x[k]);
printf("\n");
}
}
}
printf("生成された順列は%d個です。\n",cn);
}
実行画面
1 2
2 1
生成された順列は2個です。
次は3次順列生成プログラムへの挑戦です。
頭が爆発するほど難しいですが、
粘り強く開発して下さい。