C++ 的 / 向零截断、% 符号随被除数,正是评测数据采用的带余除法语义,直接输出 a/b 与 a%b 即可。
OJ: roj
题目 ID: 1009
难度:入门
标签:输入输出数学python
创建: 2026-09-29 13:07
更新: 2026-10-04 22:22
题目描述
给定被除数 10 3,样例输出 3 1。
思路
C++ 的 / 向零截断、% 的符号随被除数,恰好就是评测数据采用的语义,所以商直接取 a / b、余数直接取 a % b 输出即可,不必做任何修正。
参考代码
Python 版:
python
#!/usr/bin/env python3
# Author by Rainboy blog: https://rainboylv.com github: https://github.com/rainboylvx
# rbook: -> https://rbook.roj.ac.cn https://rbook2.roj.ac.cn
# rainboy的学习导航网站: https://idx.roj.ac.cn
# create_at: 2026-09-29 13:07
# update_at: 2026-09-29 13:07
import sys
def solve() -> None:
dividend, divisor = map(int, sys.stdin.buffer.read().split())
# 评测数据按 C 语义给答案:商向零截断,再用商回推余数。
# Python 的 // 是向下取整,除数为负时会整体偏移,必须自己截断。
opposite_sign = (dividend < 0) != (divisor < 0) # 异号 → 商为负
quot = abs(dividend) // abs(divisor) # 先算非负商
if opposite_sign:
quot = -quot
rem = dividend - quot * divisor # 余数与截断商配套,符号随被除数
print(quot, rem)
if __name__ == "__main__":
solve()C++ 版(同一算法):
cpp
/**
* Author by Rainboy blog: https://rainboylv.com github: https://github.com/rainboylvx
* rbook: -> https://rbook.roj.ac.cn https://rbook2.roj.ac.cn
* rainboy的学习导航网站: https://idx.roj.ac.cn
* create_at: 2026-10-04 22:22
* update_at: 2026-10-04 22:22
*/
#include <iostream>
using namespace std;
typedef long long ll;
ll dividend, divisor; // 被除数 a 与除数 b(b 非零)
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin >> dividend >> divisor;
// C++ 的 / 向零截断、% 的符号随被除数,正是本题采用的带余除法语义:
// 商与余数满足 a = q*b + r 且 |r| < |b|,直接输出即可,无需特殊处理。
cout << dividend / divisor << " " << dividend % divisor << "\n";
return 0;
}