#include <iostream>
using namespace std;
int main() {
long long a=2501*2501*2501;
cout<<a;
return 0;
}
我也尝试了unsigned long long,并且总是给出一些胡言乱语的答案。 我检查了long long的容量,它可以保持这个值。
答案 0 :(得分:8)
long long
绝对可以保留此值。问题是您用来计算它的表达式,即2501*2501*2501
,是int
表达式。编译器使用整数计算结果。这会导致溢出,因为结果不适合32位。因此,在编译器知道值进入long long
变量之前,结果将变为无效。
为其中一个数字添加LL
后缀以解决问题:
long long a=2501LL*2501*2501;