22:神奇的幻方
来源:互联网 发布:sql如何调用存储过程 编辑:程序博客网 时间:2024/04/28 09:02
原题链接
- 总时间限制:
- 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
源码
#include <iostream>using namespace std;int main(){ int A[40][40]={0}; int N, i, j, value, size; cin >> N; size = (2*N-1)*(2*N-1); i = 0; j = N-1; for (value=1; value<=size; value++){ A[i][j] = value; if (i==0 && j==(2*N-2)) // 右上角 i++; else{ if (i == 0){ // 第一行 i = 2*N-2; j++; } else if (j == 2*N-2){ // 最后一列 i--; j = 0; } else{ // 右上方 i--; j++; } } if (A[i][j] != 0){ // 右上方已有数字 i += 2; j--; } } for (i=0; i<(2*N-1); i++){ for (j=0; j<(2*N-1); j++) cout << A[i][j] << " "; cout << endl; } return 0;}
阅读全文
1 0
- 22:神奇的幻方
- 22:神奇的幻方
- 神奇的幻方
- 神奇的幻方
- 神奇的幻方
- 神奇的幻方
- openjudge.1.8.22 神奇的幻方
- OPENJUDGE 1.8 22:神奇的幻方
- openjudge 神奇的幻方
- 【NOIP2015】神奇的幻方
- 【NOIP2015】神奇的幻方
- [noip2015tg] 神奇的幻方
- oj神奇的幻方
- 计蒜客-神奇的幻方
- noip2015神奇的幻方
- 百练noi 22:神奇的幻方
- 二维数组练习22_神奇的幻方
- 洛谷 P2615 神奇的幻方
- 电影地址
- MVC和MVP的区别
- iOS Git~分支管理
- 字典
- Android中的MVP模式,带实例
- 22:神奇的幻方
- EasyPlayer支持H265视频解码
- (一)命名风格
- iOS Git~血泪经验注意点
- Karaf教程第3部分 使用OSGi Metatype服务和Felix Webconsole改善配置编辑
- Recyclerview的介绍与使用
- 手机滑动图案解锁
- MVC和MVP的区别
- python pip 安装问题