先求 a+b,再按 C/C++ 规则向零截断整数商。
OJ: noi_openjudge
题目 ID: ch0103-03
难度:入门
标签:数学类型转换python
日期: 2026-07-30 23:01
题意
计算整数表达式
思路
C/C++ 整数除法向零截断,而 Python 的 // 对负数向下取整,例如 -3 // 2 为 -2。先对绝对值整除,再根据符号决定正负,就能得到跨语言一致的向零商。
代码
Python代码
python
def trunc_dividend(dividend, divisor):
quotient = abs(dividend) // abs(divisor)
return quotient if dividend * divisor >= 0 else -quotient
a, b, c = map(int, input().split())
print(trunc_dividend(a + b, c))C++代码
cpp
#include <cstdio>
int main(){
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
printf("%d",(a+b)/c);
return 0;
}复杂度
时间复杂度和额外空间复杂度均为
总结
涉及负数整除时,不能想当然地把 C++ / 写成 Python //。