hpuoj 1723: 感恩节KK专场——陪学妹上课 (模拟&规律)
2015-12-06 22:23
204 查看
1723: 感恩节KK专场——陪学妹上课
时间限制: 1 Sec 内存限制: 128 MB提交: 59 解决: 30
[提交][状态][讨论版]
题目描述
KK和学妹一起去上线性代数课,号称“数学小王子”的KK,听数学课就犯困,为了使KK不睡觉,学妹决定给KK玩一个游戏,来激发KK。游戏是这样的:给出一个N*N的矩阵,矩阵中分别填入1--N*N个数字,不允许重复,使得矩阵中每行、每列以及每条对角线上的数字之和,全部相等。
为了降低难度,学妹告诉KK,每组测试数据的第一行的正中间的数字一定为1。数据保证N为奇数。
输入
给定一个整数t(0<t<1000),表示有t组测试数据。每组测试数据有一个奇数N(0<N<200),表示填上N*N个数字。
输出
每组测试数据输出一个N*N的矩阵,每个数字占8位,右对齐,具体格式见输出样例。样例输入
2 3 5
样例输出
8 1 6 3 5 7 4 9 2 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
#include<stdio.h> #include<string.h> int a[1010][1010]; int main() { int t,n,m; int i,j; scanf("%d",&t); while(t--) { scanf("%d",&n); m=n/2; memset(a,0,sizeof(a)); //a[0][m]=1; //a[n-1][m+1]=2; int i=n-1; int j=m; int cnt=1; while(cnt<=n*n) { /*if(!a[i%n][j%n]) a[i--%n][j++%n]=cnt++; else a[i++%n][j%n]=cnt++;*/ if(a[i%n][j%n]) { i-=2; j--; } a[i++%n][j++%n]=cnt++; } for(i=n-1;i>=0;i--) { for(j=0;j<n;j++) { printf("%8d",a[i][j]); } printf("\n"); } } return 0; }
相关文章推荐
- JVM读书笔记
- 青菜(小白菜)
- Remove Duplicates from Sorted Array
- eclipse常用调试
- Container With Most Water
- 如何保护手机号码泄露隐私
- 如何保护手机号码泄露隐私
- 线程与进程的区别
- 读代码大全2——第四章 关键的“构建”决策
- Python解析已下载html文件
- Subsets,Subsets II
- hdoj 5533 Dancing Stars on Me 【数学题】
- ios UISearchDisplayController 实现 UITableView 搜索功能
- SpringMVC_上传图片
- IOS--文件存储
- sql内连接与外连接的用法
- java 泛型问题 关于警告XXX is a raw type
- window.open的兼容性问题
- 关于编程语言的思考——编译型和解释型
- 关于网站设计