第14講 4次及び6次魔方陣の作成
第7話 対角線の交換

Ⅳ 対角線の交換

36 2 3  4 5 33
7 29 9 10 27 12
13 14 22 21 17 18
19 20 16 15 23 24
25 11 27 28 8 30
6 32 33 34 35 1

解答コード例
class n{
  public static void main(String args[]){
    int[][] a=new int[6][6];
    System.out.println("6次自然配列");
    f(a);
    h(a);
    System.out.println("対角線の交換");
    g(a);
    h(a);
  }
  public static void f(int a[][]){
    int i,j;
    for(i=0;i<6;i++){
      for(j=0;j<6;j++){
        a[i][j]=6*i+j+1;
      }
    }
  }
  public static void h(int a[][]){
    int i,j;
    for(i=0;i<6;i++){
      for(j=0;j<6;j++){
        if(a[i][j]<10){
          System.out.print (" ");
          System.out.print(a[i][j]);
          System.out.print (" ");
        }
        else{
          System.out.print(a[i][j]);
          System.out.print (" ");
        }
      }
      System.out.println();
    }
  }
  public static void g(int a[][]){
    int i,w;
    for(i=0;i<3;i++){
      w=a[i][i];
      a[i][i]=a[5-i][5-i];
      a[5-i][5-i]=w;
    }
    for(i=0;i<3;i++){
      w=a[i][5-i];
      a[i][5-i]=a[5-i][i];
      a[5-i][i]=w;
    }
  }
}
実行画面
Java

さて、次は

Ⅴ 中央の直線に対しても左右対称移動

36 2 4  3 5 33
12 29 9 10 27 7
13 17 22 21 14 18
19 20 16 15 23 24
25 11 27 28 8 30
6 32 33 34 35 1

です。


第6話へ 第8話へ

戻る

VB講義へ
VB講義基礎へ
vc++講義へ第1部へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座

初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第1部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第2部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第3部