数据结构&算法 斐波那契数列
-
斐波那契数列
斐波那契数列通过将两个先前的数字相加来生成后续的数字。斐波那契数列从两个数开始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级数起草迭代算法。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)); } }