这题有问题
原题链接:29892.小码的新运算2025-03-10 18:40:54
发布于:江苏
首先,题目里说0<=a,b<=10000,且a,b和计算结果都为整数,所以我一开始是这样写的:
#include <bits/stdc++.h>
using namespace std;
int main(){
int a,b;
cin>>a>>b;
cout<<a*b*(b+1)/2;
return 0;
}
但是,提交后只对了2个测试点,错了2个。后来我又把代码改成了这样:
#include <bits/stdc++.h>
using namespace std;
int main(){
long long a,b;
cin>>a>>b;
cout<<a*b*(b+1)/2;
return 0;
}
然后就全绿了。难道10000会爆int吗???????
全部评论 4
首先题目中说,在极端情况之下(即),原式值为。这个值大于,相应的也大于int的取值范围,因此会爆。
2025-08-12 来自 广东
0会的
2025-08-12 来自 浙江
0包的
2025-08-12 来自 广东
0ab(b+1)/2爆int,1e41e41e4/2>2e9
2025-03-10 来自 江西
0
有帮助,赞一个