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;}
推荐阅读
-
托尼的王者梦|李白无双买不起也没事,成吉思汗这款别错过,司马懿新皮肤看不上没关系
-
-
-
上线|《头号玩家》将推续作:预售开启!11月24日上线
-
-
攀枝花机场|专家解读深航攀枝花机场“不安全”事件:飞机提前触地或与操控有关
-
「咸宁」拍婚纱照时,新郎突然撒开新娘的手转身就跑!网友:值得嫁!
-
国企|地产设计岗位需求增长明显,原因何在,特点如何?
-
星座小密语|不会暴露自己的锋芒,保持初心,说话分得清对错的三个星座
-
-
「娱情娱礼」人字拖,街头抽烟像老烟民!,谁的青春不犯傻?伊万卡身穿小棉袄
-
央视|受台风“海高斯”影响 宁铁11趟动车停运或调整
-
-
财见|OST娱乐与渤海银行成都分行签署战略合作备忘录
-
-
检测|一个令人振奋!,青岛疫情最新消息!一个让人愤怒
-
-
乌镇2日游旅游攻略 乌镇2日游可以玩哪些景点或项目
-
【】5G套餐用户数远超手机总销量 运营商抢夺5G市场
-
詹姆斯|开局就是吊打?首节领先15分+詹姆斯独砍11分,双MVP太没斗志了