3.3 栈与递归
//函数调用 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; }
.
浙公网安备 33010602011771号