"""输出如下 10 1 2 3 4 5 6 7 8 9 10 27 28 29 30 31 32 33 34 11 0 26 45 46 47 48 49 35 12 0 0 25 44 54 55 50 36 13 0 0 0 24 43 53 51 37 14 0 0 0 0 23 42 52 38 15 0 0 0 0 0 22 41 39 16 0 0 0 0 0 0 21 40 17 0 0 0 0 0 0 0 20 18 0 0 0 0 0 0 0 0 19 0 0 0 0 0 0 0 0 0 """ n = str() while True: try: n = input() n = int(n) break except Exception: continue matrix = [] for i in range(n): inner = [] for j in range(n): inner.append(0) matrix.append(inner) case = 1 i = 0 j = 0 j_max = n - 1 j_min = 0 i_max = n - 1 i_min = 0 count = 1 def print_matrix(): for a in matrix: for b in a: print(b,end = '\t') print() print() while True: if count > n * (n + 1) / 2: break if case == 1: matrix[i][j] = count if j >= j_max: i += 1 j -= 1 case = 2 i_min += 1 j_max -= 2 else: j += 1 elif case == 2: matrix[i][j] = count i += 1 j -= 1 if i > i_max or j < j_min: i -= 2 j += 1 case = 3 i_max -= 2 elif case == 3: matrix[i][j] = count if i <= i_min: j += 1 case = 1 j_min += 1 else: i -= 1 count += 1 #print_matrix() print_matrix()
螺旋三角矩阵
最新推荐文章于 2023-10-21 23:01:32 发布