题解 | 二维斐波那契数列
二维斐波那契数列
https://www.nowcoder.com/practice/a1951ca9431646ff8f9bc6f6d24d1e0a
题干解读:给出了二维斐波那契数列的定义,简单来说就是第一行与第一列的值均为1,其余每个数的值都=其左相邻列数+上相邻行的数。
解题思路:先将a[0][0]到a[0][m-1]和a[0][0]到a[n-1][0]的值求出,便于后续计算.
再由题中所给规则,利用双重循环来求a[i][j]的值即可.
#include <iostream>
using namespace std;
int main() {
int n,m;
cin>>n>>m;
long long a[n][m];
a[0][0]=1;
for(int i=1;i<n;i++){
a[i][0] = a[i-1][0];
}
for(int j=1;j<m;j++){
a[0][j] = a[0][j-1];
}
for(int i = 1;i<n;i++){
for(int j=1;j<m;j++){
a[i][j] = (a[i-1][j]+a[i][j-1])%1000000007;
}
}
cout<<a[n-1][m-1];
}
查看10道真题和解析