题解 | 二维斐波那契数列

二维斐波那契数列

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;
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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