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

更新于: 2020年10月9日

162 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告