递归

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;
}

图解:

向上递

1744612435088

向下归

1744612468071

斐波那契数列

#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;
}
posted @ 2025-04-23 09:00  EanoJiang  阅读(19)  评论(0)    收藏  举报