回覆列表
  • 1 # 木子李ovo

    #include <iostream>

    #include <iomanip>

    using namespace std;

    //僅用於雙偶數幻方

    void magic(int col)

    {

    //定義動態二維陣列

    int i,j,m,n;

    int **magic = new int *[col];

    for(i=0;i<col;i++)

    magic[i] = new int [col];

    //初始化二維陣列

    for(i=0;i<col;i++)

    for(j=0;j<col;j++)

    magic[i][j] = i*col+j+1;

    //對角線上的數取補

    for(i=0;i<col;i+=4)

    for(j=0;j<col;j+=4)

    {

    for(m=i;m<i+4;m++)

    for(n=j;n<j+4;n++)

    if((m%4)==(n%4) || ((m%4)+(n%4)) == 3 )

    magic[m][n] = col*col+1 - magic[m][n];

    }

    cout<<"magic("<<col<<") = \n";

    for(i=0;i<col;i++)

    {

    cout<<"\t";

    for(j=0;j<col;j++)

    cout<<setw(3)<<magic[i][j]<<" ";

    cout<<endl;

    }

    for(i=0;i<col;i++)

    delete [] magic[i];

    delete [] magic;

    }

    這是我自己寫的介面函式,可以用來計算任何4*n的魔法(主函式你自己隨便寫個就ok)。

  • 中秋節和大豐收的關聯?
  • 大鵬教育怎麼樣?