博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
22:神奇的幻方
阅读量:6080 次
发布时间:2019-06-20

本文共 1658 字,大约阅读时间需要 5 分钟。

22:神奇的幻方

总时间限制: 
1000ms
内存限制: 
65535kB
描述

幻方是一个很神奇的N*N矩阵,它的每行、每列与对角线,加起来的数字和都是相同的。

我们可以通过以下方法构建一个幻方。(阶数为奇数)
1.第一个数字写在第一行的中间
2.下一个数字,都写在上一个数字的右上方:
    a.如果该数字在第一行,则下一个数字写在最后一行,列数为该数字的右一列
    b.如果该数字在最后一列,则下一个数字写在第一列,行数为该数字的上一行
    c.如果该数字在右上角,或者该数字的右上方已有数字,则下一个数字写在该数字的下方

输入
一个数字N(N<=20)
输出
按上方法构造的2N-1 * 2N-1的幻方
样例输入
3
样例输出
17 24 1 8 1523 5 7 14 164 6 13 20 2210 12 19 21 311 18 25 2 9
1 #include
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<
<<" ";59 }60 cout<

模拟。,,,,,,,,,,,

转载地址:http://dyhgx.baihongyu.com/

你可能感兴趣的文章
阿里云公共镜像、自定义镜像、共享镜像和镜像市场的区别 ...
查看>>
shadowtunnel v1.7 发布:新增上级负载均衡支持独立密码
查看>>
Java线程:什么是线程
查看>>
mysql5.7 创建一个超级管理员
查看>>
【框架整合】Maven-SpringMVC3.X+Spring3.X+MyBatis3-日志、JSON解析、表关联查询等均已配置好...
查看>>
要想成为高级Java程序员需要具备哪些知识呢?
查看>>
带着问题去学习--Nginx配置解析(一)
查看>>
onix-文件系统
查看>>
java.io.Serializable浅析
查看>>
我的友情链接
查看>>
多线程之线程池任务管理通用模板
查看>>
CSS3让长单词与URL地址自动换行——word-wrap属性
查看>>
CodeForces 580B Kefa and Company
查看>>
开发规范浅谈
查看>>
Spark Streaming揭秘 Day29 深入理解Spark2.x中的Structured Streaming
查看>>
鼠标增强软件StrokeIt使用方法
查看>>
本地连接linux虚拟机的方法
查看>>
某公司面试java试题之【二】,看看吧,说不定就是你将要做的题
查看>>
BABOK - 企业分析(Enterprise Analysis)概要
查看>>
Linux 配置vnc,开启linux远程桌面
查看>>