zoukankan      html  css  js  c++  java
  • 7)斐波那契数列问题

    题目C语言代码:

     1 #include<stdio.h>  
     2   
     3 int facii(int n)  
     4 {  
     5   int a[]={0,1};  
     6   int i=0,x1=0,x2=1,x3=0;  
     7   
     8   if(n<2)    
     9       return a[n];  
    10          
    11   for(i=2;i<=n;i++)  
    12   {  
    13     x3=x1+x2;  
    14     x1=x2;  
    15     x2=x3;  
    16   }  
    17   return x3;  
    18 }  
    19   
    20 int main()  
    21 {  
    22   int n,y;  
    23   scanf("%d",&n);  
    24   y=facii(n);  
    25   printf("%d
    ",y);  
    26 }

    没有用递归,就是  

          f(1)=1;

          f(2)=1;  

          f(i)=f(i-1)+f(i-2);

          f(i-2)=f(i-1);

          f(i-1)=f(i);

    就是一个替换,f(i-1)和f(i-2)    f(i)移动

    然后递归方法:

     1 class Solution {
     2 public:
     3     int Fibonacci(int n) {
     4         int f=0,g=1;
     5         if(n==0)
     6             return 0;
     7         if(n==1)
     8             return 1;
     9         while(--n){
    10             g+=f;
    11             f=g-f;
    12         }
    13         return g;
    14     }
    15 };
  • 相关阅读:
    Shell 中的 expect 命令
    #每日日报#7.11
    #每日日报#7.10
    #每日日报#7.09
    #每日日报#7月8日
    每日日报2020.7.17
    每日日报2020.7.16
    每日日报2020.7.15
    每日日报2020.7.14
    每日日报2020.7.13
  • 原文地址:https://www.cnblogs.com/xiaoyoucai/p/7486438.html
Copyright © 2011-2022 走看看