计算(a+b)/c的值

GitHub跳转原题关系图返回列表

先求 a+b,再按 C/C++ 规则向零截断整数商。

OJ: noi_openjudge

题目 ID: ch0103-03

难度:入门

标签:数学类型转换python

日期: 2026-07-30 23:01

题意

计算整数表达式 (a+b)/c(a+b)/c,除法为整除。

思路

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;
}

复杂度

时间复杂度和额外空间复杂度均为 O(1)O(1)

总结

涉及负数整除时,不能想当然地把 C++ / 写成 Python //