C++ 递归算法

递归算法,尾递归算法求阶乘!

#include

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

你可能感兴趣的:(C++ 递归算法)