题解 | 二维斐波那契数列
二维斐波那契数列
https://www.nowcoder.com/practice/a1951ca9431646ff8f9bc6f6d24d1e0a
#include <stdio.h>
#include <stdlib.h>
#define MOD 1000000007
int main()
{
int row, col;
scanf("%d %d", &row, &col);
long** arr = (long**)malloc((row + 1) * sizeof(long*));
for (int i = 0; i <= row; i++)
{
arr[i] = (long*)malloc((col + 1) * sizeof(long));
}
for (int i = 1; i <= row; i++)
{
for (int j = 1; j <= col; j++)
{
if (i == 1 && j == 1)
arr[i][j] = 1;
else if (j == 1)
arr[i][j] = arr[i-1][j] % MOD;
else if (i == 1)
arr[i][j] = arr[i][j-1] % MOD;
else
arr[i][j] = (arr[i-1][j] + arr[i][j-1]) % MOD;
}
}
printf("%ld\n", arr[row][col]);
for (int i = 0; i <= row; i++)
free(arr[i]);
free(arr);
return 0;
}