领取淘宝天猫优惠券:优惠淘 | 欢迎使用随心而码微信小程序,微信搜一搜【随心而码】可直接搜到。

计算阶乘的两种方法

C/C++ Hicoder 594℃ 0评论

递归法

#include <iostream>
using namespace std;
long Fac(int n){
    if(n==0){
        return 1;
    }
    else{
        return n*Fac(n-1);
    }
}
void main(){
    int n;
    long f;
    cout <<"please input a number:" << endl;
    cin >> n;
    f = Fac(n);
    cout << "Result:" << f << endl;
}

迭代法

#include <iostream>
using namespace std;
typedef usigned int UINT; // 自定义类型
long Fac(const UINT n){
    long ret = 1;
    for(int i = 1; i <= n; i++){
        ret *=i;
    }
    return ret;
}
void main(){
    int n;
    long f;
    cout <<"please input a number:" << endl;
    cin >> n;
    f = Fac(n);
    cout << "Result:" << f << endl;
}

 

 

 

 

 

转载请注明:随心而码 » 计算阶乘的两种方法

喜欢 (0)