题解 | 二维斐波那契数列
二维斐波那契数列
https://www.nowcoder.com/practice/a1951ca9431646ff8f9bc6f6d24d1e0a
//动态分配二维数组
#include<stdio.h>
#include<errno.h>
#include<string.h>
#include<stdlib.h>
#define MOD 1000000007
int main(){
int m,n;
scanf("%d %d",&m,&n);
long long int **p=(long long int**)malloc((m+1)*sizeof(long long int *));
if(p==NULL){
perror("行内存:");
return 1;
}
int i;
for(i=0;i<=m;i++){
p[i]=(long long int *)malloc((n+1)*sizeof(long long int));
if(p[i]==NULL){
perror("列内存:");
return 1;
}
}
int j;
for(i=1;i<=m;i++){
for(j=1;j<=n;j++){
if(i==1||j==1){
p[i][j]=1%MOD;
}
else{
p[i][j]=(p[i][j-1]+p[i-1][j])%MOD;
}
}
}
printf("%lld",p[m][n]);
for(i=0;i<=m;i++){
free(p[i]);
p[i]=NULL;}
free(p);
p=NULL;
return 0;
}
