递归
github仓库:https://github.com/EanoJiang/Data-structures-and-algorithms
栈——递归
#include <stdio.h>
int sum(int n){
if(n == 1){
return 1;
}
else{
return sum(n-1)+n;
}
}
int main(){
int n = sum(5);
printf("%d\n", n);
return 0;
}
图解:
向上递

向下归

斐波那契数列
#include <stdio.h>
//循环实现
int fibonacci_forLoop(int n) {
int first = 1, second = 1, result = 0;
for(int i = 3; i <= n; i++){
result = first + second;
second = first;
first = result;
}
return result;
}
//递归实现
int fibonacci(int n) {
//递到前三项停止,开始归
if(n == 1 || n == 2){
return 1;
}
else{
return fibonacci(n-1) + fibonacci(n-2);
}
}
int main() {
int n = 3;
int num = fibonacci(n);
printf("%d", num);
return 0;
}

浙公网安备 33010602011771号