给你一个正整数N,请你输出大小为NxN的数字漩涡。数字漩涡的定义请看下例。 N=3,则输出: 1 2 3 8 9 4 7 6 5 N = 4,则输出: 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 注意:每行数字之间以一个空格隔开,行尾不要有多余的空格。
N = 100 n = N t = 0 L0 = [] aq = 1 x1, x2 = 0, 0 x3, x4 = n-1, n-1 L = [[0 for lan in range(n)] for row in range(n)]# 创建二维数组 if n%2 != 0: L[n/2][n/2] = n**2-1 for j in range(0,n,2): for i1 in range(x1,n-x1-1):L[x1][i1] = t;t += 1 x1 += 1 for i2 in range(x2,n-x1):L[i2][x4] = t;t += 1 x4 -= 1 for i3 in range(n-x1,x2,-1):L[x3][i3] = t;t += 1 x3 -= 1 for i4 in range(n-x1,x2,-1):L[i4][x2] = t;t += 1 x2 += 1 for k1 in range(n): print ' '.join(str(t) for t in L[k1])
这样写的,拆分一下。每一层拆成四个,每个是n-1个数字,比如n=5的时候:[0,1,2,3][4,5,6,7][8,9,10,11][12,13,14,15]
这五个围起来就是最外层。然后依次类推,一层层加起来。
然后判断一下奇偶数,奇数请手写最中间的数据。
不过话说我这个超级麻烦不好用也不好写。。。
最后输出的时候简直逼疯了。。。