第8講 for文・if文・配列・ポインタを総動員して3次魔方陣の自動生成に挑戦する!
第7話 2次元表示を実現する関数g

2次元表示
sを実現するプログラム例

void g(int *x){
   for(i=0;i<9;i++){
     cout<<x[i]<<" ";
     if(i%3==2)cout<<endl;
   }
   cout<<endl;
}

さて、さらに改良して、
魔方陣自動生成プログラムを完成させたいと思います。
本来は、関数fを大幅にいじるのですが、
とりあえず関数gに
行の条件=すべての行合計が15
列の条件=すべての列合計が15
対角線の条件=2つの対角線合計が15
を付け加えて

を実現してください。
ただし、魔方陣総数を正しくカウントするためには、
gをvoid型からchar型に変更し、
fも若干いじる必要があります。

ヒントとして、

x[0] x[1] x[2]
x[3] x[4] x[5]
x[6] x[7] x[8]

という表を載せておきましょう。
幸いにして、
行の条件=すべての行合計が15
列の条件=すべての列合計が15
対角線の条件=2つの対角線合計が15
のいずれもfor文で実現可能です。



第6話へ 第8話へ

a

魔方陣 数独で学ぶ VBA 入門
数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
eclipse java 入門
java 入門 サイト 基礎から応用まで
VC++ C言語 C++ 入門 初心者 基礎から応用まで
本サイトトップへ