3.3 栈与递归

3.3 栈与递归_哔哩哔哩_bilibili

 

//函数调用 C++编译
#include<iostream>
using namespace std;

void F2(int x){
    int m,n;
    m=x+1;
    n=x+2;
}
void F1(int a,int b){
    int x=a+b;
    F2(x);
    x=x+5;
}
int main(){
    int a=1,b=2,c=7;
    F1(a,b);
    c=a+b;
    cout<<c;
}

 

//Factorial阶乘 递归版 C++编译
#include<iostream>
using namespace std;

int Factorial(int n){
    if(n==0 ||n==1) return 1;
    return n*Factorial(n-1);
}
int main(){
    cout<<Factorial(10);
    return 0;
}

 

//Factorial阶乘 显示栈版 C++编译
#include<iostream>
#include<stack>
using namespace std;

int Factorial(int n){
    stack<int> S; //显示栈
    int res=1;
    while(n>1){
        S.push(n);
        n--;
    }
    while(!S.empty()){
        res*=S.top();
        S.pop();
    }
    return res;
}
int main(){
    cout<<Factorial(10);
    return 0;
}

 

//Factorial阶乘 迭代版 C++编译
#include<iostream>
using namespace std;

int Factorial(int n){
    int res=1;
    while(n>1){
        res*=n;
        n--;
    }
    return res;
}
int main(){
    cout<<Factorial(10);
    return 0;
}

 

 

//Fibonacci数列 递归版 C++编译
#include<iostream>
using namespace std;

int Fib(int n){
    if(n==0) return 0;
    if(n==1) return 1;
    return Fib(n-1)+Fib(n-2);
}
int main(){
    cout<<Fib(4);
    return 0;
}

 

//Fibonacci数列 迭代版 C++编译
#include<iostream>
using namespace std;

int Fib(int n){
    int a=0,b=1;
    while(n>1){
        b=b+a;
        a=b-a;
        n--;
    }
    return b;    
}
int main(){
    cout<<Fib(4);
    return 0;
}

 

.

posted @ 2026-09-17 07:02  董晓  阅读(15)  评论(0)    收藏  举报