斐波那契尾递归函数java_斐波那契数列 递归 尾递归 递推 C++实现

==================================声明==================================

本文原创,转载请注明作者和出处,并保证文章的完整性(包括本声明)。

本文不定期修改完善,为保证内容正确,建议移步原文处阅读。

======================================================================

闲来不想做事,刷了个网页,看到乱七八糟的东西就不自觉的扩展下,这坏毛病改不了了,又浪费了好多刷贴吧的时间。

======================================================================

随手写了个小代码,感觉写起来很简单,但是对于退出条件是“1”还是“2”,是“<=”还是“

人老了就不愿意多动脑,自己推导就算了吧,我下面的代码靠编译调试确定了下,没有问题。

估计哪次让我现场在纸上写一个,就抓虾了。

======================================================================

要理论的话,请自行翻阅《数据结构与算法分析 c语言描述》和《算法导论》,我就贴个代码,请勿吐槽。

======================================================================

递归

#include

#include

using namespace std;

LONG Fibonacci(LONG lN)

{

if (lN

{

return lN;

}

return Fibonacci(lN-)+Fibonacci(lN-);

}

int main()

{

LONG lS=Fibonacci();

return ;

}

尾递归

#include

#include

using namespace std;

LONG Fibonacci(LONG lN,LONG lA=,LONG lB=)

{

if (lN==||lN==)

{

return lB;

}

return Fibonacci(lN-,lB,lA+lB);

}

int main()

{

LONG lS=Fibonacci();

return ;

}

递推

#include

#include

using namespace std;

LONG Fibonacci(LONG lN)

{

LONG lS=;

LONG lA=;

LONG lB=;

for (LONG lCount=;lCount<=lN;lCount++)

{

lS=lA+lB;

lA=lB;

lB=lS;

}

return lS;

}

int main()

{

LONG lS=Fibonacci();

return ;

}

剑指offer-矩形覆盖-斐波那契数列(递归,递推)

class Solution { public: int rectCover(int number) { if(number==0 || number==1||number==2) return nu ...

Reverse反转算法+斐波那契数列递归+Reverse反转单链表算法--C++实现

Reverse反转算法 #include using namespace std; //交换的函数 void replaced(int &a,int & ...

PHP算法之斐波那契数列(递归)

/*斐波那契数列 源代码分析 f(x) = 1 ; 当 x < 2 ; f(x) = f(x-1)+f(x-2); 当 x >= 2 ; 通项式为:fn ={((1+根号5)/2)^n-( ...

python之斐波那契数列递归推导在性能方面的反思

在各种语言中,谈到递归首当其冲的是斐波那契数列,太典型了,简直就是标杆 一开始本人在学习递归也是如此,因为太符合逻辑了 后台在工作和学习中,不断反思递归真的就好嘛? 首先递归需要从后往前推导,所有数据 ...

java递归 斐波那契数列递归与非递归实现

递归简单来说就是自己调用自己, 递归构造包括两个部分: 1.定义递归头:什么时候需要调用自身方法,如果没有头,将陷入死循环 2.递归体:调用自身方法干什么 递归是自己调用自己的方法,用条件来判断调用什 ...

[剑指offer] 7. 斐波那契数列 (递归 时间复杂度)

简介: 杨辉三角每条斜线上的数之和就构成斐波那契数列. 思路: 参考文章:https://mp.weixin.qq.com/s?src=11×tamp=1551321876& ...

DP思想在斐波那契数列递归求解中的应用

斐波那契数列:1, 1, 2, 3, 5, 8, 13,...,即 f(n) = f(n-1) + f(n-2). 求第n个数的值. 方法一:迭代 public static int iterativ ...

[python]兔子问题,斐波那契数列 递归&;非递归

假设一对幼年兔子需要一个月长成成年兔子,一对成年兔子一个月后每个月都可以繁衍出一对新的幼年兔子(即兔子诞生两个月后开始繁殖).不考虑死亡的情况,问第 N 个月时共有多少对兔子? 结果前几个月的兔子数量 ...

java中的不死兔问题(斐波那契数列)(递归思想)

有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? public class Item { public static ...

随机推荐

一些js

//fixed块随滚动条滚动 window.οnscrοll=function(){ var scroll_left = $(window).scrollLeft(); $('#table_fixed ...

抛开flash,自己开发实现C++ RTMP直播流播放器

抛开flash,自己开发实现C++ RTMP直播流播放器 众所周知,RTMP是以flash为客户端播放器的直播协议,主要应用在B/S形式的场景中.本人研究并用C++开发实现了RTMP直播流协议的播放器 ...

A手机等的网络udp广播,收到广播以后回复udp消息

B手机:向A手机发送一条消息,等待A回复 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions: ...

Android IOS WebRTC 音视频开发总结(二八)-- 多人视频方案介绍

很多人问视频会议,在线教学,主播怎么弄,所以整理下这方面的开源解决方案, 同时为了方便测试,在自己服务器上搭建了相应的服务端,文章来自博客园RTC.Blacker,转载请说明出处. 简单来说,WEBR ...

(Android学习系列)一,用按钮实现时间的显示

我们先用AndroidStudio新建一个项目,选择空白模板,然后像其中拖入两个Button,将他们的id分别命名为btDate(显示日期),btTime(显示时间),他的模板XML代码很简单 < ...

hashcode的一些了解

1.hashcode的作用? hashcode代表对象的特征,在集合类中广泛的使用. 2.hashcode是如何生成的? 在普通的对象中,获得对象的内存的地址,经过一些算法,不同对象生成不同的hash ...

跟我一起学JQuery插件开发教程

在逛codeproject网站的时候,突然看到一篇文章:How to write plugin in Jquery. 如果对E文好的同学 ,可以看上面的连接.现在我把上面网站的及结合自己的想法写这篇文 ...

Postgres 优雅存储树形数据

碰到一个树形数据需要存储再数据控制,碰到以下两个问题: 在PG数据库中如何表达树形数据 如何有效率的查询以任意节点为Root的子树 测试数据 为了更加简单一些,我们将使用一下数据 Section A ...

Codeforces/TopCoder/ProjectEuler/CodeChef 散题笔记 (持续更新)

最近做到了一些有趣的散题,于是开个Blog记录一下吧… (如果有人想做这些题的话还是不要看题解吧…) 2017-03-16 PE 202 Laserbeam 题意:有一个正三角形的镜子屋,光线从$C$ ...

JQuery Tree插件

转载这个,这个非常的全,有时间可以去学习学习:http://ztreeapi.iteye.com/ http://ztreeapi.iteye.com/blog/2028608

你可能感兴趣的:(斐波那契尾递归函数java)