东北联赛上有一道题,数据范围是2^60,当时不记得long long的范围,于是写了一个程序试了一下,把队友带入了一个大数的大坑QAQ(蠢哭)。
当时写的代码是这样的:
1 #include<iostream> 2 3 using namespace std; 4 5 int main() 6 { 7 long long x=1<<60; 8 cout<<x<<endl; 9 return 0; 10 }
程序输出0。
于是我就把队友带入了大数的大坑一去不回QAQ。
后来发现1和60都是int类型的,应该加上一个强制类型转换QAQ。好蠢好蠢。
下面的才是正确的代码:
1 #include<iostream> 2 3 using namespace std; 4 5 int main() 6 { 7 long long x=(long long)1<<60; 8 cout<<x<<endl; 9 return 0; 10 }
希望以后不要犯这么蠢的错误了QAQ。