python编写递归函数和非递归函数、输出斐波那契数列_分别用非递归和递归的方法编写函数求斐波那契数列第n项。斐波那契数列1,1,2,3,5,8,13,…...
展开全部
/**
已知Fibonacci数列:1,1,2,3,5,8,……,F(1)=1,F(2)=1,F(n)=F(n-1)+F(n-2)
*/
#include
#include
typedef long long int int64;
//方法1,递归法
int64 Fibonacci(int n)
{
int64 sum;
if(n<=0)
{
printf("参数值e68a84e8a2ad3231313335323631343130323136353331333433616236非法!\n");
exit(-1); //直接终止程序
}
if(n==1 || n==2)
return 1;
else
sum=Fibonacci(n-1)+Fibonacci(n-2);
return sum;
}
非递归法
int64 Fibonacci2(int n)
{
int64 a,b,c;
if(n<=0)
{
printf("参数值非法!\n");
exit(-1); //直接终止程序
}
if(n==1 || n==2)
return 1;
a=b=1; //对前两项的值初始化
n=n-2; //因为是从第3项开始记次数,所以减2
while(n > 0)
{
c=a+b;
a=b;
b=c;
n--;
}
return c;
}
//测试主函数
int main()
{
int n;
scanf("%d",&n); //输入n
//printf("F(%d)=%lld\n",n,Fibonacci(n));
printf("F(%d)=%lld\n",n,Fibonacci2(n));
return 0;
}
//示例运行结果
F:\c_work>a.exe
5
F(5)=5
F:\c_work>a.exe
6
F(6)=8
program fibo;var n,i:integer; rs:extended;function fib(m:integer):extended;var a,b:extended;
begin
a:=1;b:=1;if m<=2 then exit(1)else while m>3 do begin
fib:=a+b;a:=b;b:=fib;m:=m-1;end;exit(fib);end;
begin
read(n);writeln(fib(n));end.
扩展资料:
从第二项开始,每个偶数项的平方都比前后两项之积少1,每个奇数项的平方都比前后两项之积多1。
如:第二项1的平方比它的前一项1和它的后一项2的积2少1,第三项2的平方比它的前一项1和它的后一项3的积3多1。
(注:奇数项和偶数项是指项数的奇偶,而并不是指数列的数字本身的奇偶,比如从数列第二项1开始数,第4项5是奇数,但它是偶数项,如果认为5是奇数项,那就误解题意,怎么都说不通)
证明经计算可得:[f(n)]^2-f(n-1)f(n+1)=(-1)^(n-1)
python编写递归函数和非递归函数、输出斐波那契数列_分别用非递归和递归的方法编写函数求斐波那契数列第n项。斐波那契数列1,1,2,3,5,8,13,…...相关推荐
- 用python语言编斐波那契数列_用python函数写斐波那契数列
斐波那契数列,又称黄金分割数列.因数学家列昂纳多·斐波那契以兔子繁殖为例子而引入,故又称为"兔子数列",指的是这样一个数列:1.1.2.3.5.8.13.21.34.--在数学上, ...
- 递归求出第n项斐波那契数列_Java
public class test_Febonacci {public static void main(String[] args) {//斐波那契额数列: 1 1 2 3 5 8 13//输出第n ...
- java求斐波那契前n项和_算法之斐波那契数列如何求第n个值与前n项和?(Java)...
斐波那契数列 指的是这样一个数列:1.1.2.3.5.8.13.21.34.--在数学上,斐波纳契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n& ...
- 斐波那契数列python递归 0、1、1、2、3_python: 递归和递推方法求斐波那契数列
1. 斐波那契数列 序号 0 1 2 3 4 5 6... 数列 0 1 1 2 3 5 8... 2. 三种程序 import time time1 = time.clock() #斐波那契数列 ...
- 递归与分治——斐波那契数列非递归,递归,与优化后的递归算法
斐波那契数列: 1.1.2.3.5.8.13.21.-- 简单说,就是前两项的和是第三项的值. 1.求第N个斐波那契数的值(非递归) //斐波那契数列 int fun(int n) {int a = ...
- 循环斐波那契数列_第五课:斐波那契数列(第一课时)
简介:又称黄金分割数列.因数学家列昂纳多·斐波那契以兔子繁殖为例子而引入,故又称为"兔子数列",指的是这样一个数列:1.1.2.3.5.8.13.21.34--在数学上,斐波那契数 ...
- 用x种方式求第n项斐波那契数,99%的人只会第一种
作者: C you again,从事软件开发 努力在IT搬砖路上的技术小白 公众号: [C you again],分享计算机类毕业设计源码.IT技术文章.游戏源码.网页模板.程序人生等等.公众号回复 ...
- Java编程怎么打印输出第n项斐波拉契数
具体实现方法: package JavaWork_03; /** Goal:求第n项斐波那契数* Author:@Tang.Mitnick* Site:ChongQing* */ //设计思想:运用一 ...
- 关于递归函数转换为非递归函数的一些方式
关于递归函数转换非递归函数的一些方式 前言 目的 可行性 转换的几种途径 转换示例 第一个例子:阶乘n! 第二个例子:菲波那契数列 效率的比较 1.阶乘三种方式函数的执行效率比较 2.Fibonacc ...
最新文章
- 昨晚今天的记忆 Need for SpeedCarbon Demo
- 切换网络配置之脚本法
- 免焊vga3加6接线图_计数器和接近开关两线怎么接,计数器接近开关接线图
- iptables--静态防火墙实例教程
- app开发学习需要经历哪些流程
- json_decode用法
- 【maven】新建一个maven项目的基本配置
- k8s升级从1.13到1.16教程与采坑解决办法
- docker 常用操作-push分享及下载
- oracle instant client package,Oracle数据库之Oracle Instant Client的安装和使用
- 重启tomcat服务器步骤
- MD5加密不可逆的原因
- n1装linux系统升级,N1 降级刷机救砖总结
- visio画箭头时,如何去掉箭头的自动连接连接点(吸附)功能?
- 一篇文章带你了解网页框架——Vue简单入门
- w10取消自带杀毒服务器,如何关闭win10自带杀毒软件 Windows Defender 看完你就知道了...
- 软考-SMTP是什么意思
- 在 Notepad++ 运行 Closure Linter 来校验JS代码
- Fragment中OnCreate与OnCreateView区别
- 腾讯云安全隐私计算通过 CFCA 评测,再获国家级认可
热门文章
- 汉字转html实体符号js_html实体编码遇上js代码
- php请求接口两次,php curl post请求执行一次curl_exce 请求的接口确执行两次
- java有string这个类型吗_关于java的String类型
- python的程序格式框架_关于Python程序格式框架的描述,以下选项中错误的是
- linux生成图片快捷方式,在Deepin Linux系统下给AppImage格式软件创建快捷方式的方法...
- java测试用例编写_TestNG测试用例编写和执行
- 部门名称部门结构叠用_金属结构分公司三部门联合开展工会小组活动
- win10子linux如何重置密码,Win10如何使用Windows PowerShell命令重置本地账户密码
- linux降低线程优先级,Linux线程优先级,行为不正常
- java https soap,Java Https Soap Server(Tomcat-Axis2)