题解 | 二维斐波那契数列

二维斐波那契数列

https://www.nowcoder.com/practice/a1951ca9431646ff8f9bc6f6d24d1e0a

#include <stdio.h>

int main() 
{
    int n=0,m=0;
    long long int mod;
    scanf("%d%d",&n,&m);
    if(n==1||m==1)
    mod=1;
    else
    {
        long long int a=1,b=1,c=1;
        const int g=1000000007;
        for(int i=m+n-2;i>0;i--)
        {
            a=a*i%g;
        }
        for(int j=m-1;j>0;j--)
        {
            b=b*j%g;
        }
        for(int u=n-1;u>0;u--)
        {
            c=c*u%g;
        }
        long long int x=(b*c)%g,y=g-2,z=1;
        for(;y;)
        {
            if(y&1)
            z=(z*x)%g;
            x=x*x%g;
            y=y>>1;
        }
        mod=(a*z)%g;
    }
    printf("%lld",mod);
    return 0;
}

全部评论

相关推荐

10-31 13:04
南华大学 Java
嵌入式的小白:很多面试,面试前不会去打扰cto的,但一般cto不会在这些小事上刷人,只能说这个cto比较操心,啥重要不重要,紧急不紧急的,估计都会过问,平淡看待吧
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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