怎么减少运行时间且能正确运行

img

img


斐波那契数列递归调用计算次数

斐波那契数列用递归方式计算f(n)=f(n-1)+f(n-2),重复子问题会进行大量的重复计算,给定n和m,求计算f(n)时计算f(m)的次数。f(0)和f(1)已知,不需递归。

输入格式:

每一行两个整数n和m(0<=n-m<=40,m>2),两个数之间有一个空格

直至“0 0”,这一行不用计算

输出格式:

一行对应一个结果

输入样例:

5 3

6 3

0 0

输出样例:

2

3

图1在平台上提交时间长了,图二是我想着减少运行时间,但是却直接没有输出了,想问题在哪里

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

我简单思考了下,这个问题可以转换为杨辉三角问题。
看下图,标出了每一层递归调用的次数
比如说对于7,3,结果就是1+3+1
我想思路有了,你应该知道怎么做了吧

1 2 3 4 5 6 7
            1
        1 1
    1 2 1
1 3 3 1
6 4 1
5 1
1