思路:
一个函数调用自身,即为递归。(栈)
求阶乘的时间复杂度O(n)
#include<iostream>
int Factorial(int n);
using namespace std;
int main(){
int n,fac;
cin >> n;
fac = Factorial(n);
cout << n<<"! ="<<fac;
cin.get();
cin.get();
return 0;
}
int Factorial(int n){
if (n == 0)
return 1;
else{
int tmp = Factorial(n - 1);
/*cout << n << endl;*/
cout << "n=" << n << ";Fac(n-1)= " << tmp << ";" << n*tmp << endl;
return n*Factorial(n - 1);
}
}