斐波那契非递归算法

斐波那契数列求第n项的非递归算法实现

 1 #include<iostream>
 2
 3 long long Fibonacci(unsigned int n){
 4    if(n<=2)
 5     return n-1;
 6
 7    long long fibNumberOne = 1;
 8    long long fibNumberTwo = 0;
 9    long long fibN = 0;
10    for(unsigned int i = 2;i < n;i++){
11         fibN = fibNumberOne + fibNumberTwo;
12         fibNumberTwo = fibNumberOne;
13         fibNumberOne = fibN;
14    }
15    return fibN;
16 }
17
18 int main(){
19     unsigned int fiboNumber;
20     while(std::cin>>fiboNumber){
21         std::cout<<Fibonacci(fiboNumber)<<std::endl;
22     }
23     return 0;
24 }
时间: 2024-12-10 03:15:45

斐波那契非递归算法的相关文章

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

//斐波那契数列 //1, 1, 2, 3, 5, 8, 13, 21, 33 function aa(n){ if(n <= 2){ return 1; } return aa(n - 1) + aa(n - 2); } alert(aa(3)); // 21

C#斐波那契数列递归算法

public static int Foo(int i)        {            if (i < 3)            {                return 1;            }            else            {                return Foo(i - 1) + Foo(i - 2);            }        } static void Main(string[] args)        { 

[算法]斐波那契

#include <iostream> #include <cmath> using namespace std; //2.斐波那契--递归版本 //fn=1;当n=0,1 //fn=fn-1+fn-2;当n>1 //算法复杂度O(2^n) static int fibonacci(int n) { if (n<=1) return 1; return fibonacci(n - 1) + fibonacci(n - 2); } //2.斐波那契--非递归版本 //1/

斐波那契数与二分法的递归与非递归算法及其复杂度分析

1. 什么是斐波那契数? 这里我借用百度百科上的解释:斐波那契数,亦称之为斐波那契数列(意大利语: Successione di Fibonacci),又称黄金分割数列.费波那西数列.费波拿契数.费氏数列,指的是这样一个数列:0.1.1.2.3.5.8.13.21.--在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=Fn-1+Fn-2(n>=2,n∈N*),用文字来说,就是斐波那契数列列由 0 和 1 开始,之后的斐波那契数列系数就由之前的两数相加.特别指出:0不是第一

简述java递归与非递归算法,0-100求和,斐波那契数列,八皇后,汉诺塔问题

一:什么是递归算法? 递归算法就是直接或者间接的调用自己的方法,在达到一个条件的时候停止调用(递归出口),所以一定要找准好条件,让递归停止,否则就会是无限进行下去 二:递归程序设计的关键 1:找出调用中所需要的参数 2:返回的结果 3:递归调用结束的条件 三:递归程序注意 1:要有方法中自己调用自己 2:要有分支结构 3:要有结束的条件 四:简单叙述递归函数的优缺点 优点: 1:简洁清晰,实现容易,可读性好 2:在遍历的算法中,递归比循环更为简单 缺点: 1:效率低,使用递归函数是有空间和时间的

递归和非递归方法实现斐波那契

斐波那契数列(Fibonacci sequence),又称黄金分割数列.因数学家列昂纳多·斐波那契(Leonardoda Fibonacci[1]  )以兔子繁殖为例子而引入,故又称为"兔子数列",指的是这样一个数列:0.1.1.2.3.5.8.13.21.34.--.在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)在现代物理.准晶体结构.化学等领域,斐波纳契数列都有直接的应用. 斐波那契递归算法实现.

非递归和递归分别实现求第n个斐波那契数。

菲波那切数列为:0 1 1 2 3 5 8 13 21 34... 规律:从第三个数字起后面的每一个数字都是前两个数字的和. 非递归算法: 1 #include<stdio.h> 2 int main() 3 { 4 //数列:0 1 1 2 3 5 8 13 21 34 5 //序号:1 2 3 4 5 6 7 8 9 10 6 int a = 0; 7 int b = 1; 8 int c = a + b; 9 int num = 0;//num为所求的第几项数列. 10 scanf(&q

17. 计算斐波那契数(非递归方法)

题目: 编写非递归函数计算斐波那契数 Fn .对于每一个斐波那契数,你的代码应该只计算一次.测试你的代码. 思路: 非递归算法,要从正向进行迭代计算.我们统一一下定义:数列从 1 开始,即F(1) = 1, F(2) = 1. 利用三个变量:fib_front,fib_behind, fib.顾名思义,fib_front代表靠前的一个数,fib_behind代表靠后的一个数, fib代表当前的数.每次循环,将靠后的数值给靠前的那个,再将当前数的值给靠后的那个,这样就完成了一次迭代. 代码: 1

用递归和非递归的方法输出斐波那契数列的第n个元素(C语言实现)

费波那契数列(意大利语:Successione di Fibonacci),又译为费波拿契数.斐波那契数列.费氏数列.黄金分割数列. 在数学上,费波那契数列是以递归的方法来定义: {\displaystyle F_{0}=0} {\displaystyle F_{1}=1} {\displaystyle F_{n}=F_{n-1}+F_{n-2}}(n≧2) 用文字来说,就是费波那契数列由0和1开始,之后的费波那契系数就是由之前的两数相加而得出.首几个费波那契系数是: 0, 1, 1, 2, 3