在这种情况下,我面临溢出问题,并且将输出作为7392445620511834112
,我想将b和c的两个大值相乘,并希望存储该值。
#include<bits/stdc++.h>
using namespace std;
#define ll long long int
int main()
{
ll b=1000000000000000000;
ll c=2000000000000000000;
ll out=b*c;
cout<<out;
}
如果您从long long
更改为unsigned long long
,您可能会更接近。如果你不关心绝对精度,你可以在这里使用浮点类型,即使只有float
也足以以cout
正确显示输出的方式存储输出,但使用较大或较小的整数,或者当以其他方式处理输出时,你可能希望使用double
或long double
来获得更大的大小和精度。不要听所有人告诉你你做错了,他们整天都在堆栈交换上争论这些事情。你是如何做它是完全好的,否则它不会编译。