题解 | 二维斐波那契数列

二维斐波那契数列

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

全部评论

相关推荐

04-13 09:56
已编辑
嵌入式工程师
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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