C++:函数的递归调用--实现斐波那契数列

        求斐波那契数列第20项。

要求第20项,就要求第19项和第18项,要求第19项,就要求第18项和第17项,所以该问题可以使用递归方法解决。
        可以这样分解:
        fib(20) = fib(19) + fin(18);    
        fib(19) = fib(18) + fin(17);    
        ...
        fib(3) = fib(2) + fin(1);    
        fib(2) = 1;    fib(1) = 1;

代码实现
#include
#include

using namespace std;

int fun(int n)//定义fun函数
{
	int z;
	if (n > 2)
	{
		z = fun(n - 1) + fun(n - 2);//直接调用本身,由fun(n)转换为fun(n-1)+fun(n-2)
	}
	else
		z = 1;//n=2时退出返回到main函数
	return z;
}
int main()
{
	int i = 20;
	int k = 1;

	k = fun(i);//调用fun函数,并把结果赋给k
	cout << "第20项:" << k << endl;//输出k的值

	return 0;
}

运行结果
C++:函数的递归调用--实现斐波那契数列_第1张图片

你可能感兴趣的:(C++)