题解 | 二维斐波那契数列
二维斐波那契数列
https://www.nowcoder.com/practice/a1951ca9431646ff8f9bc6f6d24d1e0a
import sys
# 1. 魔法数字(防止结果太大)
MOD = 1000000007 # 10亿零7
# 2. 读取输入(比如输入"3 4")
n, m = map(int, input().split())
# 3. 创建一个"空白格子本"
dp = [[0] * (m + 1) for _ in range(n + 1)]
# 4. 画第一条横线和竖线
for i in range(1, n + 1):
dp[i][1] = 1 # 左边第一列全部写1
for j in range(1, m + 1):
dp[1][j] = 1 # 上面第一行全部写1
# 5. 开始填格子(一行一行填)
for i in range(2, n + 1): # 从第2行开始
for j in range(2, m + 1): # 从第2列开始
# 当前格子 = 上面格子 + 左边格子
dp[i][j] = (dp[i-1][j] + dp[i][j-1]) % MOD
# 6. 输出答案(右下角的格子)
print(dp[n][m] % MOD)