题解 | #蛇形矩阵#

蛇形矩阵

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

全部评论

相关推荐

11-27 17:08
已编辑
牛客_产品运营部_私域运营
腾讯 普通offer 24k~26k * 15,年包在36w~39w左右。
点赞 评论 收藏
分享
11-15 19:28
已编辑
蚌埠坦克学院 硬件开发
点赞 评论 收藏
分享
牛舌:如果我不想去,不管对方给了多少,我一般都会说你们给得太低了。这样他们就会给下一个offer的人更高的薪资了。
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-27 10:21
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务