会员
周边
众包
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
spring学习笔记
打印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}; //初始化每个元素为0 int row,col,count,scale; //输入阶数scale cout<<"请输入阶数:"; 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; }
posted on
2011-12-31 10:53
spring学习笔记
阅读(
229
) 评论(
0
)
编辑
收藏
举报
刷新页面
返回顶部
导航
博客园
首页
联系
订阅
管理
公告