1. 程式人生 > >n的階乘(遞迴與非遞迴)

n的階乘(遞迴與非遞迴)

#include <bits/stdc++.h>
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;
}