admin 管理员组

文章数量: 1184232


2024年3月12日发(作者:propertyme)

使用函数的递归调用求解fibonacci数列

一、问题描述

给定一个整数 n,用函数的递归调用求fibonacci数列中第n项

的值。(斐波那契数列)

二、解决方案

解决该问题,可采用函数的递归调用。

斐波那契数列的规律是:F(1) = 1,F(2) = 1,F(n)=F(n-1)+F(n-2)

(n ≥ 3,n∈N*),设f(n)表示第n项fibonacci数列的值,则斐

波那契数列的定义可以表示为函数的递归调用:

int f(int n){

if(n==1||n==2)

return 1;

return f(n - 1)+f(n - 2);

}

由此可知,求第n项fibonacci数列的值的实现逻辑为:若n=1

或2,则它们的值都是1;若 n > 2,则它的值等于其前两项的和。

因此,可使用函数的递归调用求解fibonacci数列中第n项的值。

具体逻辑如下:

int Fibonacci(int n)

{

if ( n == 0 )

return 0;//n=0时,斐波那契数列的值为0

- 1 -

if ( n == 1 )

return 1;//n=1时,斐波那契数列的值为1

if ( n > 1 )

return Fibonacci(n-1)+Fibonacci(n-2);//n>1时,斐波那契

数列的值等于前两项的和

}

三、实验结果

可以用函数的递归调用求解fibonacci数列中第n项的值。例如,

n=10时,fibonacci数列的第10项为55。

- 2 -


本文标签: 函数 递归 调用 问题 给定