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;}
推荐阅读
-
新冠肺炎疫情低风险地区影剧院应有条件开放,中高风险地区暂缓营业
-
欢乐喜剧人吴秀波对喜剧定义,欢乐喜剧人吴秀波怎么不主持了-
-
-
-
老干妈炒尖椒|尖椒这么做,美味又开胃,三碗米饭都不够吃
-
IT之家|充值者月底前将收到退款,建行数字人民币钱包短暂测试后已下线
-
-
绝技|清朝时有项“葡萄常”的绝技,为何传女不传男,五个传人全都未婚
-
-
-
-
华为荣耀@首发麒麟820性能暴增 荣耀30S游戏体验如何?
-
B站首席运营官carlylee:跨年晚会的成功关键是大数据精准分析
-
-
章子怡▲就在昨天,嫁三婚汪峰的“国际章”,生二胎后又爆新情况
-
Seven聊时尚|轻松驾驭各种鲜亮色衣服,真的美翻了,关晓彤的另类穿搭太抢眼
-
皋城美食|家里来客必学的大菜,肥而不腻,入口即化,比红烧好吃!
-
-
车市裴聊|标配X种可能,天际ME7首登北京车展:标配6项终身免费特权
-