1203: 做幻方题目描述Apple最近迷上了做幻方 , Apple还是个中高手 , 只要你说个奇数N就能把N*N的幻方做出来 。 其实你可以比他做得更好的 。 Apple总是画得很乱 , 而你可以利用程序排得很整齐^_^ 幻方的要求:每一行 , 每一列 , 还有两条斜线上数字的和都相等.
输入每行一个奇数N(0< N < 30),输入0结束
输出输入一个奇数 , 输出一个幻方 , 顺序参照样板输出;同一列的数右对齐 , 数与数用一个空格分开;输出完以后加一个回车 。
样例输入510样例输出【1203: 做幻方】11 18 252910 12 19 213 46 13 20 222357 14 1617 2418 151代码#include#include#define N 30int sqr(int m);?int main(){int m;while(scanf("%d",}return 0;}?int sqr(int m){int a[N][N] = {0};int x=0, y=0;int times, p, q, fmt;int i, j;x = m / 2;y =m - 1;times = m * m;for(i = 0 ; i < times ; i++){a[y][x] = i + 1;p = x;q = y;x = x + 1;if(x == m)x = 0;?y = y + 1;if(y == m)y = 0;?if(a[y][x] != 0){x = p;y = q - 1;}}?fmt = log10(times);if(fmt == 0){for(i = 0 ; i < m ; i++){for(j = 0 ; j < m - 1 ; j++){printf("%d ", a[i][j]);}printf("%d", a[i][m - 1]);printf("\n");}}else if(fmt == 1){for(i = 0 ; i < m ; i++){for(j = 0 ; j < m - 1 ; j++){printf("%2d ", a[i][j]);}printf("%2d", a[i][m - 1]);printf("\n");}}else if(fmt == 2){for(i = 0 ; i < m ; i++){for(j = 0 ; j < m - 1; j++){printf("%3d ", a[i][j]);}printf("%3d", a[i][m - 1]);printf("\n");}}printf("\n");return 0;}
推荐阅读
-
-
|值得追随的领导,身上都有这些特征,跟着这样的领导混才有奔头
-
爱车兵团|如何让90后的TA喜欢上我?45岁的雅阁做到了
-
环球网■非洲兴起盒马村,eWTP让普惠贸易成为新风尚
-
-
-
戏说历史三六事道尽了他一生的深情,句句美到骨子里,仓央嘉措用短短的28字
-
名校家长课堂|至关重要,孩子叛逆怎么办?聪明父母要明白3点
-
-
-
-
思丝如针|毁掉了我十年婚姻,一位已婚男人自述:一颗跃跃欲试的心
-
创业板|海昌新材:股票将于2020年9月10日在深交所创业板上市
-
睾酮素男人促睾的几个有效方法,每天坚持做,男人力量日渐增强!
-
-
『智通财经』| 雅培(ABT.US)Q1销售额77.26亿美元,净利润5.64亿美元,美股快报
-
Ai应该怎么样才可以取消轮廓,在ai中怎么把图片的底色换掉呢
-
圣诞新品来袭:喜茶、瑞幸、好利来、肯德基,干饭人冲吧
-
诟病|原创次女抑郁症自尽,幺女饱受诟病,独子低调专情,蔡志明为儿女操心
-