92求助 互粉

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

@[bcbgszyzh](/user/726902) 输出 long long 改成输出 long long int。另外还要判最小值是否大于最大值,最大值是否小于最小值。
by xiaoshumiao @ 2023-12-22 12:07:43


样例是 A 的 @[xiaoshumiao](/user/1008513)
by bcbgszyzh @ 2023-12-22 12:12:28


@[xiaoshumiao](/user/1008513) >另外还要判最小值是否大于最大值,最大值是否小于最小值。 什么意思
by bcbgszyzh @ 2023-12-22 12:12:53


楼上正解,放个我的赛时代码给您参考吧(? ```cpp #include<bits/stdc++.h> using namespace std; int main(){ long long x1,x2,y1,y2; long long m1,m2,m3,m4; cin>>x1>>x2>>y1>>y2; m1=x2*y2; m2=x2*y1; m3=x1*y2; m4=x1*y1; if(m1>INT_MAX||m2>INT_MAX||m3>INT_MAX||m4>INT_MAX)cout<<"long long int"; else if(m1<INT_MIN||m2<INT_MIN||m3<INT_MIN||m4<INT_MIN)cout<<"long long int"; else cout<<"int"; return 0; } ```
by Gun_Der @ 2023-12-22 12:14:10


```cpp #include<bits/stdc++.h> using namespace std; int main(){ long long x,y,z,w; scanf("%lld%lld%lld%lld",&x,&y,&z,&w); long long ans=x*z,ans2=y*w,ans3=x*w,ans4=y*z; if(ans<=INT_MIN||ans2<=INT_MIN||ans3<=INT_MIN||ans4<=INT_MAX)printf("long long "); else if(ans>=INT_MAX||ans2>=INT_MAX||ans3>=INT_MAX||ans4>=INT_MAX)printf("long long "); printf("int"); return 0; } ``` 变 $ 69 $ 分了
by bcbgszyzh @ 2023-12-22 12:26:47


@[M3R8L3RUN](/user/1044830) @[Gun_Der](/user/173711) @[xiaoshumiao](/user/1008513)
by bcbgszyzh @ 2023-12-22 12:27:36


@[bcbgszyzh](/user/726902) 看清题面,超过int要求输出“long long int",和一般习惯不一样(
by Gun_Der @ 2023-12-22 12:34:22


@[bcbgszyzh](/user/726902) 此外,if中不等号是严格的(即没有等号,只有大于或小于),因为恰好等于int_max还在int范围内
by Gun_Der @ 2023-12-22 12:39:13


@[bcbgszyzh](/user/726902) 还有,最后一个输出int是不是忘了加else?
by Gun_Der @ 2023-12-22 12:40:45


@[bcbgszyzh](/user/726902) ```cpp if(ans<INT_MIN||ans2>INT_MAX||ans>INT_MAX||ans2<INT_MIN)printf("long long int"); ```
by xiaoshumiao @ 2023-12-22 12:54:16


| 下一页