题解 | #蛇形矩阵#

蛇形矩阵

https://www.nowcoder.com/practice/649b210ef44446e3b1cd1be6fa4cab5e

# 构造两个变量,第一个变量存行的增量,第二个变量存列的增量
# 数据就为:初始变量(+行的增量) + 列的增量

def first_number(n):
    if n == 1:
        return 1
    else:
        return first_number(n-1) + n - 1

def second_number(n, m):
    # n, m是位置
    if m == 1:
        return first_number(n)
    else:
        return second_number(n, m-1) + m + n - 1

number = int(input())
for i in range(number):
    for j in range(number - i):
        print(second_number(i+1, j+1), end=' ')
    print()

第一个变量即 1 2 4 7 11

1

1 + 1 = 2

2 + 2 = 4

4 + 3 = 7

7 + 4 = 11

...

(n) + n = f(n-1) + n-1

即第一列的所有数字可以表示为一个递推函数 f(n) = f(n-1) + n-1

全部评论

相关推荐

我已成为0offer的糕手:别惯着,胆子都是练出来的,这里认怂了,那以后被裁应届被拖工资还敢抗争?
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务