スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

1~9の数字を1つずつ使って三桁+三桁=三桁を完成させる

ちょこっとやってみましたよっと

コードはC言語で書きました.

足す数と足される数の各桁の上下の入れ替えをしても大丈夫なので
足す数の方が各桁大きくなるようにしました.

きれいなコードではないんですけど,とりあえずはこれで勘弁してください.

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

#include
main() {
int i1,i2,i3,i4,i5,i6,i7,i8,i9,a1,a2,a3,a4,a5,a6,a7,a8,a9,n,m,l,p;
int k[9][9];
int a[9];
p=0;
for (i1=1;i1<=9;i1++){
a1 = i1;
for (i2=1;i2<=9;i2++){
a2 = i2;
for (i3=1;i3<=9;i3++){
a3 = i3;
for (i4=1;i4<=9;i4++){
a4 = i4;
for (i5=1;i5<=9;i5++){
a5 = i5;
for (i6=1;i6<=9;i6++){
a6 = i6;
for (i7=1;i7<=9;i7++){
a7 = i7;
for (i8=1;i8<=9;i8++){
a8 = i8;
for (i9=1;i9<=9;i9++){
a9 = i9;
if(a1+a4-a7==0 && a2+a5-a8==-1 && a3+a6-a9==10){
a[0]=a1;
a[1]=a2;
a[2]=a3;
a[3]=a4;
a[4]=a5;
a[5]=a6;
a[6]=a7;
a[7]=a8;
a[8]=a9;
for(n=0;n<=8;n++){
for(m=0;m<=8;m++){
if(n==m||a[n]a[m]){
k[n][m]=1;
} else {
k[n][m]=0;
}
}
}
l=1;
for(n=0;n<=8;n++){
for(m=n;m<=8;m++){
l*=k[n][m];
}
}
if(l==1){
if(a1 printf("%2d%2d%2d%2d%2d%2d%2d%2d%2d\n",a1,a2,a3,a4,a5,a6,a7,a8,a9);
p +=1;
}
}
}
}
}
}
}
}
}
}
}
}
printf("%d\n",p);
return 0;
}



ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

明らかに改良の余地がありますね.
もうちょい改良したらまた載せます.
ちなみに出力結果は下のようになってます.なかなか興味深い数字の羅列になってます.
間違ってたらごめんなさい.
もしかしたらこれで全部じゃないかもです.ただいま検証中です.

1 2 4 6 5 9 7 8 3
1 2 5 7 3 9 8 6 4
1 2 7 3 5 9 4 8 6
1 2 7 3 6 8 4 9 5
1 2 8 4 3 9 5 6 7
1 3 4 6 5 8 7 9 2
2 1 4 5 6 9 7 8 3
2 1 4 6 5 9 8 7 3
2 1 5 4 7 8 6 9 3
2 1 5 7 4 8 9 6 3
2 1 6 3 7 8 5 9 4
2 1 6 7 3 8 9 5 4
2 1 8 3 4 9 5 6 7
2 1 8 4 3 9 6 5 7
2 3 4 6 5 7 8 9 1
2 3 5 7 4 6 9 8 1
3 1 4 6 5 8 9 7 2
3 1 7 5 2 9 8 4 6
3 1 7 6 2 8 9 4 5
3 2 4 5 6 7 8 9 1
3 2 4 6 5 7 9 8 1
21





スポンサーサイト

コメント

非公開コメント

tweet!
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。