递归 - 斐波那契系列

递归 - 斐波那契系列 首页 / 结构和算法入门教程 / 递归 - 斐波那契系列

斐波那契数列通过将两个先前的数字相加来生成后续的数字,斐波那契数列从两个数字开始- F0 & F1. 初始值可以分别设为0、1或1、1。

斐波那契数列满足以下条件-

Fn=Fn-1 + Fn-2

因此,斐波那契数列可以看起来像这样-

F 8 =0 1 1 2 3 5 8 13

链接:https://www.learnfk.comhttps://www.learnfk.com/data-structures-algorithms/fibonacci-series.html

来源:LearnFk无涯教程网

或者,这-

F 8 =1 1 2 3 5 8 13 21

无涯教程网

出于说明目的,F 8 的斐波那契显示为-

Fibonacci Animation

斐波那契迭代算法

首先,我们尝试为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));
   }
}
Factorial of 5: 120
Fibbonacci of 5: 0 1 1 2 3

斐波那契递归算法

让我们学习如何创建递归算法斐波那契数列。递归的基本标准。

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));            
   }
}
Factorial of 5: 120
Fibbonacci of 5: 0 1 1 2 3

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

玩转Git三剑客 -〔苏玲〕

Java并发编程实战 -〔王宝令〕

小马哥讲Spring AOP编程思想 -〔小马哥〕

代码之丑 -〔郑晔〕

如何读懂一首诗 -〔王天博〕

Spring Cloud 微服务项目实战 -〔姚秋辰(姚半仙)〕

人人都用得上的数字化思维课 -〔付晓岩〕

快手 · 音视频技术入门课 -〔刘歧〕

Rust 语言从入门到实战 -〔唐刚〕

好记忆不如烂笔头。留下您的足迹吧 :)