C++中可计算阶乘的最大整数值
在这个问题中,我们需要创建一个程序来查找C++中机器可以计算阶乘的最大整数值。
一个数字的阶乘是一个很大的值,因为它是由它之前所有值的乘积得到的。而C++只能通过使用其内置函数来处理一定范围内的较大值。我们需要找到这个限制。
解决方案
我们将简单地使用数据类型的属性,当数字超过最大值时,将返回负数。
我们将使用`long long int`,这是最大的基本数据类型。
示例
#include <iostream> using namespace std; int calcMaxFactVal(){ int maxVal = 1; long long int maxFactorial = 1; while (true){ if (maxFactorial < 0) return (maxVal - 1); maxVal++; maxFactorial *= maxVal; } return - 1; } int main(){ cout<<"The maximum value of an integer for which factorial can be calculated on machine is "<<calcMaxFactVal(); return 0; }
输出
The maximum value of an integer for which factorial can be calculated on machine is 20
广告