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;}
推荐阅读
-
穿衣搭配|郎平带女儿和朱婷聚餐,T恤配短发精神抖擞,女儿和妈妈气质真像
-
袁隆平|新闻联播报道袁隆平珍贵画面 田间地头调查健步如飞
-
八一钢铁|八一钢铁:控股股东的子公司拟21.81亿元收购铸管新疆100%股权
-
-
重庆|解决同业竞争?重庆百货为何6.5亿接盘步步高旗下亏损公司
-
-
-
-
中建电力惠州项目部举办“动员大会”暨“送清凉”活动
-
【悼念】黑龙江各地森林消防举行悼念活动 致敬英雄向逝者默哀
-
「爱吃的苹果6」我来了!,漫画:难道我就要死在这里了吗?别慌
-
「我在努力」4种食物要多吃,滋养皮肤,越吃越年轻,女性不想被喊''老太婆''
-
青年|港风女神钟楚曦新style:梳脏辫穿工装裤,演绎潮流cool girl
-
西部数据×航天文创(CASCI)首次跨界合作,致敬航天精神
-
-
-
结婚|劳斯莱斯接亲时撞上石墩车损20万 司机:亲属不指挥就没这事了
-
全言|国乒模拟赛:团体8强正式诞生!梁靖崑、王楚钦、林高远面临挑战
-
吉林@吉林:境外返回人员集中隔离期间的食宿费用由本人自理
-
#娱乐阅宵雨#三吉彩花拍摄婚纱写真牵蓝色气球唯美浪漫