“斐波那契数列”问题的递推算法
来源:互联网 发布:判断反常积分收敛知乎 编辑:程序博客网 时间:2024/05/05 07:02
/*
标题:<<系统设计师>>应试编程实例-[递推算法程序设计]
作者:成晓旭
时间: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)
{
int f0 = 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)
{
int f0 = 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()
{
int large,result;
while(large!=9910)
{
printf(" 请输入斐波那契数列的元素个数[Enter '9910' to Exit]:");
scanf("%d",&large);
if(large!=9910)
{
//result = Std_Fibonacci(large);
result = Ext_Fibonacci(large-1);
printf("斐波那契数据中的第[%d] = %d ",large,result);
}
}
}
//:============================“斐波那契数列”问题的递推算法===========================
标题:<<系统设计师>>应试编程实例-[递推算法程序设计]
作者:成晓旭
时间: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)
{
int f0 = 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)
{
int f0 = 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()
{
int large,result;
while(large!=9910)
{
printf(" 请输入斐波那契数列的元素个数[Enter '9910' to Exit]:");
scanf("%d",&large);
if(large!=9910)
{
//result = Std_Fibonacci(large);
result = Ext_Fibonacci(large-1);
printf("斐波那契数据中的第[%d] = %d ",large,result);
}
}
}
//:============================“斐波那契数列”问题的递推算法===========================
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=935927
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- Java算法--递推算法 求解兔子产子问题或斐波那契数列问题
- 斐波那契数列递推
- 斐波那契数列的递归、递推算法比较
- 递推算法(顺推)- 斐波那契数列用C++实现
- “大整数阶乖”问题的递推算法
- IDEA数据加密算法介绍
- 经典面试问题:12小球问题算法(源码)
- 四方、曾经魂牵梦萦的地方
- 李开复:21世纪7种人才最抢手
- “斐波那契数列”问题的递推算法
- Google搜索API?
- 这样的开源基金设想行得通吗?
- Delphi之东进模拟语音卡(D160A)可复用源码
- 从山丘锤王之死谈Spring AOP中的引介(Introduction)
- AIX 程序设计大赛---AIX正方形问题
- Ruby,Block,CPS 和 call/cc
- 开源提示
- 李开复:21世纪7种人才最抢手