数据结构&算法 斐波那契数列

  • 斐波那契数列

    斐波那契数列通过将两个先前的数字相加来生成后续的数字。斐波那契数列从两个数开始F0和F1。F0和F1的初始值可以分别取0、1或1、1。斐波那契数列满足以下条件-
    Fn = Fn-1 + Fn-2
    因此,斐波那契数列可以看起来像这样-
    F8 = 0 1 1 2 3 5 8 13
    或者
    F8 = 1 1 2 3 5 8 13 21
    出于说明目的,F8的斐波那契显示为-
    fibonacci
  • 斐波那契迭代算法

    首先,我们尝试为Fibonacci级数起草迭代算法。
    
    Procedure Fibonacci(n)
       declare f0, f1, fib, loop 
       
       set f0 to 0
       set f1 to 1
       
       display f0, f1
       
       for loop ← 1 to n
       
          fib ← f0 + f1   
          f0 ← f1
          f1 ← fib
    
          display fib
       end for
      
    end procedure
    
    C语言实现如下-
    
    #include <stdio.h>
    
    int factorial(int n) {
       //base case
       if(n == 0) {
          return 1;
       } else {
          return n * factorial(n-1);
       }
    }
    
    int fibbonacci(int n) {
       if(n == 0) {
          return 0;
       } else if(n == 1) {
          return 1;
       } else {
          return (fibbonacci(n-1) + fibbonacci(n-2));
       }
    }
    
    int main() {
       int n = 5;
       int i;
      
       printf("Factorial of %d: %d\n" , n , factorial(n));
       printf("Fibbonacci of %d: " , n);
      
       for(i = 0;i < n;i++) {
          printf("%d ",fibbonacci(i));
       }
    }
    
    尝试一下
  • 斐波那契递归算法

    让我们学习如何创建递归算法斐波那契数列。递归的基本标准。
    
    START
    Procedure Fibonacci(n)
       declare f0, f1, fib, loop 
       
       set f0 to 0
       set f1 to 1
       
       display f0, f1
       
       for loop ← 1 to n
       
          fib ← f0 + f1   
          f0 ← f1
          f1 ← fib
    
          display fib
       end for
    
    END
    
    C语言实现如下-
    
    #include <stdio.h>
    
    int factorial(int n) {
       //base case
       if(n == 0) {
          return 1;
       } else {
          return n * factorial(n-1);
       }
    }
    
    int fibbonacci(int n) {
       if(n == 0){
          return 0;
       } else if(n == 1) {
          return 1;
       } else {
          return (fibbonacci(n-1) + fibbonacci(n-2));
       }
    }
    
    int main() {
       int n = 5;
       int i;
      
       printf("Factorial of %d: %d\n" , n , factorial(n));
       printf("Fibbonacci of %d: " , n);
      
       for(i = 0;i<n;i++) {
          printf("%d ",fibbonacci(i));            
       }
    }
    
    尝试一下