------- python -------- 无代码高亮🤦‍ ------- def solve2(): n = int(sys.stdin.readline().strip()) snake, size = [1,1, 2], n * n while len(snake) < size: num = snake[-2] + snake[-1] snake.append(num) snake = snake[::-1] matrix = [[1] * n for _ in range(n)] x, y = 0, 0 i, start, end = n, 0, 0 while i > 0: end = start + i * 2 + ( i - 2) * 2 helper(matrix, x, y, i, snake[start: end]) x, y, start = x + 1, y + 1, end i -= 2 for row in matrix: print( " ".join([str(_) for _ in row ] ) ) def helper(matrix, x, y, n, nums): indexes = [] indexes.extend( [ (x,b) for b in range(y, y+n-1) ] ) indexes.extend( [ (a,y+n-1) for a in range(x, x+n-1)] ) indexes.extend( [ (x+n-1, b) for b in range(y+n-1, y, -1)]) indexes.extend( [(a, y) for a in range(x+n-1, x, -1) ]) i = 0 for a, b in indexes: matrix[a][b] = nums[i] i += 1
点赞 1

相关推荐

牛客网
牛客网在线编程
牛客网题解
牛客企业服务