一次傻乎乎的错误QAQ

东北联赛上有一道题,数据范围是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。

原文地址:https://www.cnblogs.com/HadesBlog/p/9203119.html