22:神奇的幻方
2018-06-17 23:13:46来源:未知 阅读 ()
22:神奇的幻方
- 查看
- 提交
- 统计
- 提问
- 总时间限制:
- 1000ms
- 内存限制:
- 65535kB
- 描述
-
幻方是一个很神奇的N*N矩阵,它的每行、每列与对角线,加起来的数字和都是相同的。
我们可以通过以下方法构建一个幻方。(阶数为奇数)
1.第一个数字写在第一行的中间
2.下一个数字,都写在上一个数字的右上方:
a.如果该数字在第一行,则下一个数字写在最后一行,列数为该数字的右一列
b.如果该数字在最后一列,则下一个数字写在第一列,行数为该数字的上一行
c.如果该数字在右上角,或者该数字的右上方已有数字,则下一个数字写在该数字的下方 - 输入
- 一个数字N(N<=20)
- 输出
- 按上方法构造的2N-1 * 2N-1的幻方
- 样例输入
-
3
- 样例输出
-
17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9
1 #include<iostream> 2 using namespace std; 3 int a[1001][1001]; 4 int now=1; 5 int tot=0; 6 int hang,lie; 7 int main() 8 { 9 int n; 10 cin>>n; 11 int c=2*n-1; 12 while(tot!=(c*c)) 13 { 14 if(tot==0) 15 { 16 a[1][c/2+1]=now; 17 now++; 18 hang=1; 19 lie=c/2+1; 20 tot++; 21 } 22 else if(hang==1&&lie!=c) 23 { 24 a[c][lie+1]=now; 25 now++; 26 tot++; 27 hang=c; 28 lie=lie+1; 29 } 30 else if(lie==c&&hang!=1) 31 { 32 a[hang-1][1]=now; 33 now++; 34 tot++; 35 hang=hang-1; 36 lie=1; 37 } 38 else if((hang==1&&lie==c)||(a[hang-1][lie+1]!=0)) 39 { 40 a[hang+1][lie]=now; 41 now++; 42 tot++; 43 hang=hang+1; 44 } 45 else 46 { 47 a[hang-1][lie+1]=now; 48 now++; 49 tot++; 50 hang=hang-1; 51 lie=lie+1; 52 } 53 } 54 for(int i=1;i<=c;i++) 55 { 56 for(int j=1;j<=c;j++) 57 { 58 cout<<a[i][j]<<" "; 59 } 60 cout<<endl; 61 } 62 return 0; 63 }
模拟。,,,,,,,,,,,
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:01:数制转换
- 查看程序运行时间以及延时程序实现 2019-04-25
- C++编程查看指针变量的值 2019-01-22
- 实验1 查看CPU和内存,用机器指令和汇编指令编程 2018-10-06
- 09:密码翻译 2018-06-18
- 10:矩阵转置 2018-06-18
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash