【发布时间】:2020-04-29 20:46:36
【问题描述】:
我一直试图找到一种方法来存储这个算术的结果几个小时。
我了解数据太大而无法存储。但我的编译器似乎支持的最大数据类型是 unsigned long long。
#include <iostream>
#include <iomanip>
#include <limits>
using namespace std;
int main() {
int num1 = 100000;
int num2 = 200000;
int num3 = 300000;
double num4 = 500000.00;
unsigned long long product = (num1 * num2 * num3 * num4);
cout << fixed << setprecision(3) << product << endl;
// Answer should be 3000000000000000000000.000
// Result is 18446447556077551616
return 0;
}
【问题讨论】:
-
您可能需要一个支持任意大整数及其有理数的库。 (或者实现你自己的)
-
这能回答你的问题吗? How to store extremely large numbers?
-
好吧,我的主要限制是我必须使用在线编译器,因为这是一个类。
-
也许使用 BigIntegers?我记得在 Java 中使用它们来解决 Project Euler 问题。 (对于尺寸过大的数字)
标签: c++