一、题目描述
输入一个整数n(1<=n<=100),计算n的阶乘。
C++程序要求输入输出格式如下:
输入:3 输出:6
二、思路
可以考虑递归的方法来解决。
三、C++代码
#include<bits/stdc++.h>
using namespace std;
//阶乘计算
long long toFactorial(long long n) {
if(n == 1) // 终止状态
return 1;
else
return n * toFactorial(n - 1); // 归纳项
}
int main(){
long long n;
while(cin >> n) {
cout << n << "的阶乘为:" << toFactorial(n) << endl;
}
}
四、不足之处
由于计算机能计算的结果是有界的,当超过计算机的计算范围就会溢出无法准确的算出,本程序最大只能计算到20的阶乘,因此若要计算更大数的阶乘,需要考虑使用高精度阶乘算法。