zoukankan      html  css  js  c++  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>=3,n∈N*)

    1.普通斐波那契数列解法

     1 #include<iostream>
     2 #include<cstdio>
     3 using namespace std;
     4 
     5 int Fibonacci(int n)
     6 {
     7     if(n==1||n==2)
     8         return 1;
     9     else
    10         return Fibonacci(n-1)+Fibonacci(n-2);
    11 }
    12 
    13 int main()
    14 {
    15     for(int i=1;i<100;i++)
    16     {
    17         printf("%d ",Fibonacci(i));
    18     }
    19     printf("
    ");
    20     return 0;
    21 }

    2.记忆性递归   用一个数组保存求得的结果  适用于数据项比较大的情况

     1 #include<iostream>
     2 #include<cstdio>
     3 using namespace std;
     4 
     5 int f[100];
     6 
     7 int Fibonacci(int n)
     8 {
     9     if(n==1||n==2)
    10         return f[n]=1;
    11     else
    12     {
    13         if(f[n]==0)  //没求解过
    14             return f[n]=Fibonacci(n-1)+Fibonacci(n-2);
    15         else   //求解过,直接取保存的结果值
    16             return f[n];
    17     }
    18 }
    19 
    20 int main()
    21 {
    22     printf("%d
    ",Fibonacci(1000)); //求第1000项结果 非常快
    23     return 0;
    24 }
  • 相关阅读:
    当前毫秒时间戳
    生成随机指定长度的字符串
    symfony框架学习
    Git 学习一
    jmeter逻辑控制器
    jmeter执行顺序及作用域规则
    jmeter常用测试元件
    windows环境下jmeter生成测试报告
    jmeter参数化
    对网页进行截图(selenium)
  • 原文地址:https://www.cnblogs.com/bfcs/p/10722664.html
Copyright © 2011-2022 走看看