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