13、蛤蟆的数据结构笔记之十三栈的应用之栈与递归之斐波那契数列

13、蛤蟆的数据结构笔记之十三栈的应用之栈与递归之斐波那契数列

本篇名言:“人生不是一支短短的蜡烛,而是一支由我们暂时拿着的火炬,我们一定要把它燃得。

继续递归的斐波那契数列问题。

欢迎转载,转载请标明出处:

1.  斐波那契数列

斐波那契数列,又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从1963起出版了以《斐波纳契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果。

2.  源码

斐波那契的C语言实现如下图:

#include
<stdio.h>

int fib(int
n)

{

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

return1;

returnfib(n-1)+fib(n-2);

}

int main()

{

intn;

scanf("%d",&n);

printf("%d\n",fib(n));

return0;

}

如下图1:

时间: 06-21

13、蛤蟆的数据结构笔记之十三栈的应用之栈与递归之斐波那契数列的相关文章

[从今天开始修炼数据结构]栈、斐波那契数列、逆波兰四则运算的实现

一.栈的定义 栈是限定仅在表尾进行插入和删除操作的线性表.允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom).栈又称后进先出的线性表,简称LIFO结构. 注意:首先它是一个线性表,也就是说栈元素有前驱后继关系. 栈的插入操作,叫做进栈,也称压栈.入栈 栈的删除操作,叫做出栈,也叫弹栈. 注意:最先入栈,不代表就要最后出栈.因为栈没有限制出栈的时间,例如可以先入栈两个元素,再出栈两个元素,后入栈其他元素. 二.栈的抽象数据类型 ADT Stack Data 同线性表.元素具有相

33. 蛤蟆的数据结构笔记之三十三广义表实现二

33. 蛤蟆的数据结构笔记之三十三广义表实现二 本篇名言:" 希望是附丽于存在的,有存在,便有希望,有希望,便是光明.--鲁迅" 我们继续来看下广义表的其他代码实现.代码均来自网络,解释来自蛤蟆,均亲测可行. 欢迎转载,转载请标明出处: 1.  广义表实现二 1.1         main 创建两个链表的指针head和L. 输入一个字符串,调用GLCreate函数创建广义表.显示,获取头表,尾表,输出长度,深度,原子个数,复制列表,Merge列表,遍历,比较广义表操作. 如下图1:

43. 蛤蟆的数据结构笔记之四十三最短路径之迪杰斯特拉(Dijkstra )算法

43. 蛤蟆的数据结构笔记之四十三最短路径之迪杰斯特拉(Dijkstra )算法 本篇名言:"辛勤的蜜蜂永没有时间悲哀.--布莱克" 这次来看下Dijkstra )算法.还是老方法,先原理,后实现.代码来自网络. 欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/47046031 1.  最短路径 最短路径问题是图论研究中的一个经典算法问题, 旨在寻找图(由结点和路径组成的)中两结点之间的最短路径. 管道铺设.线路安排

----斐波那契数列---eval函数----类递归思想 栈 进出 思想

------------ 斐波那契 数列 --------------- [1,1,2,3,5,8,13,21,34,...] 1 列表方法实现 # l=[1,1] # # # while len(l)<=20: # # l.append(l[-1]+l[-2]) # # print(l) # # while len(l)!=4: # l.append(l[-1]+l[-2]) # print(l) # 2 迭代实现 # n=10 # # n1 = 1 # n2 = 1 # n3 = 1 # #

【数据结构】递归算法—斐波那契数列

斐波那契数列,学过数学的都知道,就是1  1  2  3  5  8  13  21  34 ... 即每一项都是前两项的和. 算法本身很简单,关键的是理解递归这种思想. 打印出num长度的斐波那契数列,直接贴代码: //======================================================================     //     //        Copyright (C) 2014-2015 SCOTT         //      

黑马入学基础测试(三)求斐波那契数列第n项,n&lt;30,斐波那契数列前10项为 1,1,2,3,5,8,13,21,34,55

.获得用户的输入 计算      3打印就行了.   这里用到了java.util.Scanner   具体API  我就觉得不常用.解决问题就ok了.注意的是:他们按照流体的方式读取.而不是刻意反复读取 自己写的代码: package com.itheima; import java.util.Scanner; public class Test3 { /** * 3.求斐波那契数列第n项,n<30,斐波那契数列前10项为 1,1,2,3,5,8,13,21,34,55 * * @author

Python初学者笔记:打印出斐波那契数列的前10项

问题:斐波那契数列(意大利语: Successione di Fibonacci),又称黄金分割数列.费波那西数列.费波拿契数.费氏数列,指的是这样一个数列:0.1.1.2.3.5.8.13.21.--在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*),用文字来说,就是斐波那契数列列由 0 和 1 开始,之后的斐波那契数列系数就由之前的两数相加.特别指出:0不是第一项,而是第零项. 方法:Python2.7.9 a=0 b=

斐波拉契数列:1、1、2、3、5、8、13、21……,编写函数,求数列的第n项F(n)(3&lt;=n&lt;=40)。输入n,输出F(n)。

#include<iostream>#include<cstdio>/*1.1.2.3.5.8.13.21.34.55*/using namespace std;int fibo(int n){ int ans[1000]={0,1,1}; for(int i=3;i<=n;i++){ ans[i]=ans[i-1]+ans[i-2]; } return ans[n];}void read(){ freopen("fibo.in","r"

leetcode笔记:Climbing Stairs(斐波那契数列问题)

一.题目描述 You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top? 题目的大意是,已知有n阶楼梯,每次只能爬1阶或2阶楼梯,问爬到第n阶楼梯共有几种爬法-_-||.题目可以看成是,设f(n)表示爬到第n 阶楼梯的方法数,为