递归算法,尾递归算法求阶乘!
#include<iostream>
using namespace std;
int fact(int n)
{
if (n < 0)
{
return 0;
}
else if (n == 1 || n == 0)
{
return 1;
}
else
{
return (n * fact(n - 1));
}
}
int facttail(int n, int a)
{
if (n < 0)
{
return 0;
}
else if (n == 0)
{
return 1;
}
else if (n == 1)
{
return a;
}
else
{
return facttail(n - 1, n * a);
}
}
int main()
{
cout << fact(5)<< endl;
cout << facttail(5, 1) << endl;
return 0;
}