斐波那契数列生成 - 日理万妓 2022-06-11 01:23 75阅读 0赞 ## 前言 ## 斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列: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\*)。 下面将测试3中不同的方式(测试为40)去生成斐波那契数列, 比较运行的效率。 ## 1. 递归产生 ## //递归生成第n项斐波那契数列 int fibonacii_recursive(int num) { if(0 == num) return 0; if(1 == num) return 1; return fibonacii_recursive(num-1)+fibonacii_recursive(num-2); } 运行结果 ![SouthEast][] ## 2. for循环生成 ## //for生成第n项斐波那契数列 int fibonacii_for(int num) { if(num < 1) return -1; if(num <= 2) return 1; int f1 = 1; int f2 = 1; int value; for(int i=3; i<=num; ++i) { value = f1 + f2; f1 = f2; f2 = value; } return value; } 运行结果 ![SouthEast 1][] ## 3. 动态规划思想 ## 使用一个缓存数组来存储中间变量,避免重复计算 int *fibo = nullptr; //使用动态规划的思想得到第n项斐波那契数列 int fibonacii_dyna(int num) { if(0 == num) return 0; if(1 == num) return 1; if(fibo[num] != 0) return fibo[num]; fibo[num] = fibonacii_dyna(num-1) + fibonacii_dyna(num-2); return fibo[num]; } fibo = new int[num+1]; for(int i=0; i<=num; ++i) { fibo[i] = 0; } fibonacii_dyna(num); //num=40 delete [] fibo; fibo = nullptr; 运行结果 ![SouthEast 2][] [SouthEast]: /images/20220611/2d4d8275046e4a479b18f75afd5c5698.png [SouthEast 1]: /images/20220611/c9d7c4ad96ac4adf953c0a566c1646c3.png [SouthEast 2]: /images/20220611/042f257e9dbd4c5ca14b13d3787917bd.png
相关 斐波那契数列 斐波那契数,指的是这样一个数列:1、1、2、3、5、8、13、21、……在数学上,斐波那契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=Fn-1+Fn-2(n>=2, Love The Way You Lie/ 2022年11月19日 04:15/ 0 赞/ 235 阅读
相关 斐波那契数列 \\题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。 n<=39 思路 1. 递归(函数栈调用消耗 ゝ一纸荒年。/ 2022年10月29日 06:26/ 0 赞/ 35 阅读
相关 斐波那契数列 // 斐波那契数列.cpp : 定义控制台应用程序的入口点。 // \include "stdafx.h" \include<iostream> usin 谁践踏了优雅/ 2022年08月23日 14:45/ 0 赞/ 63 阅读
相关 斐波那契数列 关于斐波那契数列的解法,本人找到了一种比较简单的方法,结果是正确的,不知道各位有没有另外更好的解法,一起探讨探讨。 import java.util.; pu ╰+攻爆jí腚メ/ 2022年08月01日 12:15/ 0 赞/ 353 阅读
相关 斐波那契数列 定义:斐波那契数列指的是这样一个数列:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, … 这个数列从第三项开始,每一项都等于前两项之和。 矫情吗;*/ 2022年07月13日 04:49/ 0 赞/ 307 阅读
相关 斐波那契数列 斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597, 冷不防/ 2022年07月13日 03:19/ 0 赞/ 327 阅读
相关 斐波那契数列生成 前言 斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入 - 日理万妓/ 2022年06月11日 01:23/ 0 赞/ 76 阅读
相关 斐波那契数列 class FibIter(object): def __init__(self, lenth): self.lent 一时失言乱红尘/ 2022年05月27日 13:51/ 0 赞/ 324 阅读
相关 斐波那契数列 include<iostream> using namespace std; int fibonacci1(int t) { if(t 古城微笑少年丶/ 2022年05月09日 08:58/ 0 赞/ 290 阅读
相关 斐波那契数列 ![1234096-20171112230708606-1911525192.png][] 转载于:https://www.cnblogs.com/ostrich-sugar た 入场券/ 2022年01月06日 23:41/ 0 赞/ 351 阅读
还没有评论,来说两句吧...