社区讨论
手写GCD函数的记得处理负数情况
P10463Interval GCD参与者 4已保存回复 4
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @mig6sx8r
- 此快照首次捕获于
- 2025/11/26 23:56 3 个月前
- 此快照最后确认于
- 2025/11/27 08:40 3 个月前
如题,c++中的取模运算是向下取整的,所以这样:
CPPint gcd(int x,int y){
if(x==0)reurn y;
return gcd(y%x,x);
}
当 , 是负数时答案就错了,因为
y%x的值不再是 的值了应该是这样:
CPPint gcd(int x,int y){
if(x<0||y<0)x=llabs(x),y=llabs(y);
if(x==0)return y;
return gcd(y%x,x);
}
然后线段树中所有操作都不用取绝对值了
回复
共 4 条回复,欢迎继续交流。
正在加载回复...