1. 程式人生 > >C語言經典演算法(七)——遞迴實現階乘演算法的兩種方法

C語言經典演算法(七)——遞迴實現階乘演算法的兩種方法

今後繼續整理演算法並寫出自己的理解和備註。 C++實現的:遞迴實現階乘演算法N!
1、 遞迴實現n!
<1> 題目描述:輸入n值,求解n的階乘
<2> 方法一:累乘法
<3> 方法二:遞迴法
原始碼:
一、 遞迴實現n!
1、 累乘法

#include<iostream>
using namespace std;
#define UL unsigned long
UL Factorial(UL n)
{
    int sum = 1;
    for(int i=1; i<=n; ++i)//數學概念
    {
        sum *= i;
    }
    return
sum; } void main() { UL n; cout<<"請輸入n:>"; cin>>n; cout<<n<<"的階乘為:>"<<Factorial(n)<<endl; }

2、 遞迴法

#include<iostream>
using namespace std;
#define UL unsigned long
UL Factorial(UL n)
{
    if(n == 0)
        return 1;
    else
        return
n * Factorial(n-1);//遞迴有臨界,不能溢位呼叫棧,則可以直接使用遞迴,程式碼簡單但效率不會很高 } void main() { UL n; cout<<"請輸入n:>"; cin>>n; cout<<n<<"的階乘為:>"<<Factorial(n)<<endl; }