这道题
cpp代码:
#include<bits/stdc++.h>
using namespace std;
signed main(){
long long a[3],b[3];
cin>>a[0]>>b[0];
cin>>a[1]>>b[1];
if((a[0]*b[0]>2147483647||a[0]*b[0]<-2147483648)||(a[1]*b[1]>2147483647||a[1]*b[1]<-2147483648)) cout<<"long long int";
else cout<<"int";
return 0;
}
测试点5,6,7,8,11等都出现了问题,难道是因为除了a,b的最大值和最小值之外中间值也可以使它大于2147483647吗?个人认为有较奇葩的测试点。
求助必关