OK欢迎回来
这道题想必大家都做过,但是这道题要用递归做,我们慢慢来看
这个题目是应用场景中的第4个场景,也是以后学前缀和的基础,思路也就是第 a[i] 个数等于第 a[i-1] 的数加上第a[i-2]的数,其中第1、2个数是要赋值为 1
用代码表示就是 a[i] = a[i-1] + a[i-2];
思路知道了,题就好做了
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
首先先处理输入输出:
然后处理递归函数:
最后调用递归:
这样就写完了,简单吧!
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
代码执行流程:
1.输入处理:
AC狗输入一个整数n,程序将其读取到变量n中。
2.函数调用:
调用f(n),开始递归计算斐波那契数列的第n项。
3.递归过程:
基例(结束条件):当n为1或2时,直接返回1。
递归步骤:对于n > 2,函数调用自身计算f(n-1)和f(n-2),并将结果相加返回。
4.结果输出:
将计算得到的斐波那契数列中的第 n 项输出。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
举一个例子:
假设AC狗输入5,那么 n = 5 ,程序的执行过程如下:
f(5)调用f(4)和f(3)
f(4)调用f(3)和f(2)
f(3)调用f(2)和f(1)
f(2)返回1
f(1)返回1
计算回溯,f(3) = 1 + 1 = 2。
f(4) = 2 + 1 = 3。
f(5) = 3 + 2 = 5。
最后,输出结果:5。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ok今天就讲到这里,拜拜