2020-10-07

    科技2024-05-15  81

    蛇形填空

    如下示例:

    1 3 4 10 11 2 5 9 12 19 6 8 13 18 20 7 14 17 21 24 15 16 22 23 25

    看清规律问题就简单。 以坐标(0,0)为顶点将列表矩阵顺时针旋转45°,构成有规律的列表 [[1], [2, 3], [6, 5, 4], [7, 8, 9, 10], [15, 14, 13, 12, 11], [16, 17, 18, 19], [22, 21, 20], [23, 24], [25]],问题就简单了。

    n = int(input("Please input N:")) B = [] k = 1 for i in range(n): temp = [] for j in range(i + 1): temp.append(k) k += 1 if i % 2 == 0: temp.reverse() B.append(temp) for i in range(n - 1, 0, -1): temp = [] for j in range(i): temp.append(k) k += 1 if i % 2 == 1: temp.reverse() B.append(temp) result = [] for i in range(n): temp = [] for j in range(n): temp.append(B[j][-1]) B[j].pop() result.append(temp) B.pop(0) length = len(str(n * n)) for res in result: for r in res: print("{:{}}".format(r, length), end=" ") print() D:\Python\Python38\python.exe D:/Python/study/test20.py Please input N:11 1 3 4 10 11 21 22 36 37 55 56 2 5 9 12 20 23 35 38 54 57 76 6 8 13 19 24 34 39 53 58 75 77 7 14 18 25 33 40 52 59 74 78 93 15 17 26 32 41 51 60 73 79 92 94 16 27 31 42 50 61 72 80 91 95 106 28 30 43 49 62 71 81 90 96 105 107 29 44 48 63 70 82 89 97 104 108 115 45 47 64 69 83 88 98 103 109 114 116 46 65 68 84 87 99 102 110 113 117 120 66 67 85 86 100 101 111 112 118 119 121 Process finished with exit code 0
    Processed: 0.018, SQL: 8