我发现long long int的数值限制不足.在C++中是否还有其他数字类型,如java中的大整数?
我最近偶然发现了这个问题并且不知道如何处理它..... https://blog.codechef.com/2009/07/02/tutorial-for-small-factorials/
enc*_*eet 13
unsigned long long int是标准C++中的最大整数类型(它可以保存0到18的数字446 744 073 709 551 615),如果你想要更大的那些,你可能需要搜索一些这样的bignum库: http:// www .ttmath.org /
您可以使用 C++ 库<boost/multiprecision/cpp_int.hpp> 解决此类问题。
例如:
#include <boost/multiprecision/cpp_int.hpp>
using boost::multiprecision::cpp_int;
using namespace std;
int main()
{
cpp_int f = 1;
for(int i = 1; i <= 100; i++)
f *= i;
cout << "100! = " << f << '\n';
}
Run Code Online (Sandbox Code Playgroud)
这将给出输出
100! = 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
Run Code Online (Sandbox Code Playgroud)
要了解有关 C++ boost 库的更多信息,您可以参考这里和这里
| 归档时间: |
|
| 查看次数: |
40314 次 |
| 最近记录: |