“斐波那契数列”问题的递推算法

本文介绍了一种使用递推算法解决斐波那契数列问题的方法,包括标准斐波那契数列和广义斐波那契数列的实现。通过递推算法避免了递归带来的重复计算问题,提高了算法效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**/ /*
标题:<<系统设计师>>应试编程实例-[递推算法程序设计]
作者:成晓旭
时间:2002年09月11日(11:52:00-16:26:00)
实现递推算法的大整数阶乖处理函数
时间:2002年09月16日(18:38:00-20:02:00)
实现“斐波那契数列”问题的递推算法函数
*/

#include
" stdio.h "
#include
" stdlib.h "
// :============================“斐波那契数列”问题的递推算法===========================
/**/ /*
问题描述:
标准斐波那契数列:
F(0)=0,F(1)=1,Fn)=F(n-2)+F(n-1)(当n>1时)
广义斐波那契数列:
F(0)=0,F(1)=0,F(2)=1,Fn)=F(n-3)+F(n-2)+F(n-1)(当n>2时)
*/

// 标准斐波那契数列的递推算法函数
int Std_Fibonacci( int number)
... {
intf0=0,f1=1,result,loop;//初始值1,2,返回结果,循环计数器
if(number==0)return(0);
if(number==1)return(1);
for(loop=2;loop<=number;loop++)
...{
result
=f0+f1;//由前两步的结果计算当前结果--->“推出”
f0=f1;//把原来的前一步当作下一次的前两步--->“传递”
f1=result;//把当前结果当作下一次的前一步--->“传递”
}
//注意:在进行这种向前传递的操作时,特别小心传递的时序
return(result);
}

// 广义斐波那契数列的递推算法函数
int Ext_Fibonacci( int number)
... {
intf0=0,f1=0,f2=1,result,loop;//初始值1,2,3,返回结果,循环计数器
if(number==0||number==1)return(0);
if(number==2)return(1);
for(loop=2;loop<=number;loop++)
...{
result
=f0+f1+f2;//由前三步的结果计算当前结果
f0=f1;
f1
=f2;
f2
=result;
}
//注意:在进行这种向前传递的操作时,特别小心传递的时序[即:变量间赋值的前后关系及先后顺序]
return(result);
}

void Run_Fibonacci()
... {
intlarge,result;
while(large!=9910)
...{
printf(
" 请输入斐波那契数列的元素个数[Enter'9910'toExit]: ");
scanf(
"%d",&large);
if(large!=9910)
...{
//result=Std_Fibonacci(large);
result=Ext_Fibonacci(large-1);
printf(
"斐波那契数据中的第[%d]= %d ",large,result);
}

}

}

// :============================“斐波那契数列”问题的递推算法===========================
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值