HDU2044

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2044

HDU2044_第1张图片

思路:a爬到b的可能路线数就等于1爬到b-a的可能路线数;1到2有1种可能,1到3有2种可能,1爬到4有3种可能,1爬到5有5种可能,1爬到6有8种可能...不难发现,这是斐波那契递推。

问题:
1.这道题的答案很大,开始我使用int提交WA,后改用long long 类型AC。
2.输出long long型得使用%lld。

代码:

#include 
long long ans(int x);
int main()
{
    int n, a, b;
    scanf("%d", &n);
    for(;n>0;n--)
    {
        scanf("%d%d", &a, &b);
        printf("%lld\n", ans(b - a));
    }
    return 0;
}
long long ans(int x)
{
    int i;
    long long ans[60];
    ans[1] = 1; ans[2] = 2;
    for (i = 3; i <= x; i++)
    {
        ans[i] = ans[i - 1] + ans[i - 2];
    }
    return ans[x];
}

你可能感兴趣的:(HDU2044)