大佬救命!!!

P1401 [入门赛 #18] 禁止在 int 乘 int 时不开 long long

@[zj13516757538](/user/953621) 你的 $a\times b$,$c\times d$,$a\times d$ 和 $b\times c$ 都要判断
by xd244 @ 2024-04-06 21:11:01


你的 a×b,c×d,a×d , b×c 都要判断,不能这样做,所以要用双层循环。 ```cpp #include<bits/stdc++.h> using namespace std; int main(){ long long x[2],y[2]; cin >> x[0] >> x[1] >> y[0] >> y[1]; for (int i = 0;i < 2;i++){ for (int j = 0;j < 2;j++){ if (x[i] * y[j] > INT_MAX || x[i] * y[j] < INT_MIN){ cout << "long long int"; return 0; } } } cout << "int"; return 0; } ```
by ZZYX_18670145320 @ 2024-04-06 21:15:26


@[xd244](/user/1153793) 修改后97了 ``` #include<bits/stdc++.h> using namespace std; int main() { long long a,b,c,d,x,x1,x2,x3,x4,x5; cin>>a>>b>>c>>d; x=a*b; x1=a*c; x2=a*d; x3=b*c; x4=b*d; x5=c*d; if(x>2147483647||x<-2147483648||x1>2147483647||x1<-2147483648||x2>2147483647||x2<-2147483648||x3>2147483647||x3<-2147483648||x4>2147483647||x4<-2147483648||x5>2147483647||x5<-2147483648) cout<<"long long int"; else cout<<"int"; } ```
by zj13516757538 @ 2024-04-06 21:17:05


@[xd244](/user/1153793) 还有什么错误吗?
by zj13516757538 @ 2024-04-06 21:18:43


@[ZZYX_18670145320](/user/1192648) ``` INT_MIN ``` 这是啥
by zj13516757538 @ 2024-04-06 21:21:04


@[zj13516757538](/user/953621) $a\times c\ ,\ b\times d$ 不用
by __Tonycyt__ @ 2024-04-06 21:25:42


INT_MIN=-2147483648
by __Tonycyt__ @ 2024-04-06 21:26:07


@[__Tonycyt__](/user/667037) 哦
by zj13516757538 @ 2024-04-08 20:45:13


@[__Tonycyt__](/user/667037) 怎么还九十四了 ``` #include<bits/stdc++.h> using namespace std; int main() { long long a,b,c,d,x,x2,x3,x5; cin>>a>>b>>c>>d; x=a*b; x2=a*d; x3=b*c; x5=c*d; if(x>2147483647||x<-2147483648||x2>2147483647||x2<-2147483648||x3>2147483647||x3<-2147483648||x5>2147483647||x5<-2147483648) cout<<"long long int"; else cout<<"int"; } ```
by zj13516757538 @ 2024-04-08 20:48:01


@[zj13516757538](/user/953621) 不用这么写,你直接a*c,a*d这样子把所有结果写出来在判断是否大于INT_MAX或小于INT_MIN就可以了 (只是if写的有一点小长) for example: if(a*c>INT_MAX||a*d>INT_MAX||b*c>INT_MAX||b*d>INT_MAX||a*c<INT_MIN||a*d<INT_MIN||b*c<INT_MIN||b*d<INT_MIN)
by hjmcyh @ 2024-06-05 17:11:59


|