- 数据结构与算法
- DSA - 主页
- DSA - 概述
- DSA - 环境设置
- 数据结构
- DSA - 数据结构基础知识
- DSA - 数据结构和类型
- DSA - 数组数据结构
- 链表
- DSA - 链表基础知识
- DSA - 双向链表
- DSA - 循环链表
- 堆栈和队列
- DSA - 堆栈
- DSA - 表达式解析
- DSA-队列
- 图数据结构
- DSA - 图数据结构
- DSA-深度优先遍历
- DSA-广度优先遍历
- DSA——生成树
- 树数据结构
- DSA - 树数据结构
- DSA - 树遍历
- DSA - 二叉搜索树
- DSA - AVL 树
- DSA - 红黑树
- DSA - B 树
- DSA - B+ 树
- DSA - 八字树
- DSA - 尝试
- DSA-堆
- 递归
- DSA - 递归基础知识
- DSA - 河内塔
- DSA - 斐波那契数列
- DSA 有用资源
- DSA - 问题与解答
- DSA - 快速指南
- DSA - 有用的资源
- DSA - 讨论
数据结构与算法斐波那契数列
斐波那契数列通过添加两个先前的数字来生成后续的数字。斐波那契数列从两个数字开始 - F 0和 F 1。F 0和F 1的初始值可以分别取0、1或1、1。
斐波那契数列满足以下条件 -
Fn = Fn-1 + Fn-2
因此,斐波那契数列可以如下所示 -
F 8 = 0 1 1 2 3 5 8 13
或者,这个 -
F 8 = 1 1 2 3 5 8 13 21
出于说明目的,F 8的斐波那契显示为 -
斐波那契迭代算法
首先,我们尝试起草斐波那契数列的迭代算法。
Procedure Fibonacci(n)
declare f0, f1, fib, loop
set f0 to 0
set f1 to 1
<b>display f0, f1</b>
for loop ← 1 to n
fib ← f0 + f1
f0 ← f1
f1 ← fib
<b>display fib</b>
end for
end procedure
斐波那契递归算法
让我们学习如何创建斐波那契数列的递归算法。递归的基本标准。
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
例子
#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
// C++ Code for Fibonacci series
#include <iostream>
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;
std::cout << "Factorial of " << n << ": " << factorial(n) << std::endl;
std::cout << "Fibbonacci of " << n << ": ";
for(i = 0;i<n;i++) {
std::cout << fibbonacci(i) << " ";
}
}
输出
Factorial of 5: 120 Fibbonacci of 5: 0 1 1 2 3
// Java Code for Fibonacci series
public class Fibonacci {
public static int factorial(int n) {
// base case
if (n == 0) {
return 1;
} else {
return n * factorial(n - 1);
}
}
public static int fibonacci(int n) {
if (n == 0) {
return 0;
} else if (n == 1) {
return 1;
} else {
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
public static void main(String[] args) {
int n = 5;
int i;
System.out.println("Factorial of " + n + ": " + factorial(n));
System.out.print("Fibonacci of " + n + ": ");
for (i = 0; i < n; i++) {
System.out.print(fibonacci(i) + " ");
}
}
输出
Factorial of 5: 120 Fibonacci of 5: 0 1 1 2 3
#Python code for fibonacci Series
def factorial(n):
# base case
if n == 0:
return 1
else:
return n * factorial(n-1)
def fibonacci(n):
if n == 0:
return 0
elif n == 1:
return 1
else:
return fibonacci(n-1) + fibonacci(n-2)
if __name__ == "__main__":
n = 5
print("Factorial of", n, ":", factorial(n))
print("Fibonacci of", n, ": ")
for i in range(n):
print(fibonacci(i))
输出
Factorial of 5 : 120 Fibonacci of 5 : 0 1 1 2 3