- 192 名前:デフォルトの名無しさん [2007/11/10(土) 07:50:49 ]
- 1から9の順列を昇順に求めるプログラム
#include <iostream> using namespace std; main(){ int a,b,c,d,e,f,g,h,i,chk[9]={1,1,1,1,1,1,1,1,1},N=0; char **jretu=new char* [9]; for(a=0;a<9;a++) jretu[a]=new char [362880]; for(a=0;a<9;a++){ chk[a]=0; for(b=0;b<9;b++){ if(chk[b]==0)continue; chk[b]=0; for(c=0;c<9;c++){ if(chk[c]==0)continue; chk[c]=0; for(d=0;d<9;d++){ if(chk[d]==0)continue; chk[d]=0; for(e=0;e<9;e++){ if(chk[e]==0)continue; chk[e]=0; for(f=0;f<9;f++){ if(chk[f]==0)continue; chk[f]=0; for(g=0;g<9;g++){ if(chk[g]==0)continue; chk[g]=0; for(h=0;h<9;h++){ if(chk[h]==0)continue; chk[h]=0; for(i=0;i<9;i++){ if(chk[i]==0)continue; jretu[0][N]=a;jretu[1][N]=b;jretu[2][N]=c;jretu[3][N]=d; jretu[4][N]=e;jretu[5][N]=f;jretu[6][N]=g;jretu[7][N]=h;jretu[8][N]=i; N++; }chk[h]=1; }chk[g]=1; }chk[f]=1; }chk[e]=1; }chk[d]=1; }chk[c]=1; }chk[b]=1; }chk[a]=1; }cout<<N;}
|

|