打印N阶魔阵的程序
/*N階魔陣是一個N X N的由1到N^2之間的自然數構成的矩陣
*它的每一行、每一列和對角線之和均相等。例如,一個三階
*魔陣,它的每一行、每一列和對角線之和均為15:________|8 | 1| 6|————|3 | 5| 7|————|4 | 9| 2|————
編寫一個程序打印任意N階魔陣。
依次將1到N^2填入矩陣,填入的位置有如下規則確定。
*第一個元素放在第一行中間一列
*下一個元素存放在當前元素的上一行、下一列
*如上一行、下一列已經有內容,則下一個元素存放在當前列的下一行。
*/
//代碼清單:#include<iostream>
using namespace std;#define MAX 15 //最高打印15階魔陣int main()
{int magic[MAX][MAX]={0}; //初始化每個元素為0int row,col,count,scale;//輸入階數scalecout<<"請輸入階數:";cin>>scale;//生成魔陣row=0; col=(scale-1)/2;magic[row][col]=1;for(count=2;count<=scale*scale; count++){if(magic[(row-1+scale)%scale][(col+1)%scale]==0){row=(row-1+scale)%scale;col=(col+1)%scale;}else row=(row+1)%scale;magic[row][col]=count;}//輸出for(row=0;row<scale; row++){for(col=0;col<scale; col++){cout<<magic[row][col]<<" ";}cout<<endl;}cout<<endl;return 0;
}
轉載于:https://www.cnblogs.com/wwj9413/archive/2011/12/31/2638659.html
總結
- 上一篇: 06复杂查询(多数据库表)
- 下一篇: 阳光城是国企吗