#include <iostream>
/*
````阶乘是前边的值进行累乘的计算方法
````例如 1*1=1, 1*2=2, 2*3=6, 6*4=24, 24*5=120, 120*6=720 ······ 以此类推
*/
using namespace std; // 默认使用 std 命名空间
unsigned long long jie(unsigned long long num) // 阶乘函数(英语不好,所以使用了拼音命名函数)
{
if (num <= 1) // 如果 num 值小于等于1,就返回1
return 1;
else
num *= jie(num - 1); // 否则 num 值乘等于下一次函数的返回值(假设num = 3, 1*1=1, 2*1=2, 3*2=6, 最终结果为6)
return num; // 返回 num 值
}
int main(int argv, char* argc[])
{
unsigned long long num = 0, sum = 0;
cout << "请输入阶乘值:";
cin >> num; // 输入阶乘次数(0 ~ 20)
sum = jie(num);
if (sum > (unsigned long long)1E20) // 如果结果大于 10000000000000000000 则输出阶乘结果过大,经测试最大支持 20! ,再大将超出该范围
{
cout << "阶乘结果过大!!" << endl;
return -1;
}
cout << num << "! = " << sum << endl; // 输出结果
return 0;
}
C++代码实现阶乘方法
最新推荐文章于 2024-07-24 21:03:53 发布