题解 | 二维斐波那契数列

二维斐波那契数列

https://www.nowcoder.com/practice/a1951ca9431646ff8f9bc6f6d24d1e0a


n, m = map(int, input().split())
mod = 10**9 + 7

# 正确初始化n行m列的二维数组
a = [[0] * m for _ in range(n)]

# 起点初始化为1
a[0][0] = 1

for i in range(n):
    for j in range(m):
        if i == 0 and j == 0:  # 起点已经初始化过
            continue
        # 正确的递推公式:从上边来 + 从左边来
        from_top = a[i-1][j] if i > 0 else 0
        from_left = a[i][j-1] if j > 0 else 0
        a[i][j] = (from_top + from_left) % mod

print(a[n-1][m-1])  # 注意是n-1和m-1,因为索引从0开始
'''
n,m=map(int,input().split())
a = [[0] * (m+1) for _ in range(n+1)]#初始化二维数组,不要漏了
a[0][0]=1#定义初始值
a[1][0]=1
a[0][1]=1
for i in range(0,n):
    for j in range(0,m):
        from_top = a[i][j+1] 
        from_left = a[i+1][j] 
        a[i+1][j+1] = from_top + from_left 
print(a[n-1][m-1]%(10**9+7))
'''
'''
if i > 0 else 0
        if j > 0 else 0
        a[i][j]=a[i-1][j]+a[i][j-1] 
'''

全部评论

相关推荐

牛客62533758...:华为不卡双非,而是卡院校hhhh
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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