n的阶乘(递归与非递归)

#include 
using namespace std;
typedef long long ll;

ll f(ll n)///递归算法
{
    if(n==0 || n==1) return 1;
    else return n * f(n-1);
}
ll g(ll n)///非递归算法
{
    ll ans = 1;
    if(n==0) return ans;
    for(ll i=1; i<=n; i++)
    {
       ans = ans *  i;
    }
    return ans;
}
int main()
{
    ll n;
    cin>> n;
    cout<< f(n) << endl;
    cout<< g(n) << endl;
    return 0;
}

 

你可能感兴趣的:(【数据结构】)