题目链接

计算带余除法

题目描述

给定两个整数 ab (0 <= a, b <= 1000),请计算 a 除以 b 的整数商和余数。

输入描述: 输入一行两个整数 ab,分别表示被除数和除数。

输出描述: 输出两个整数,分别表示 a 除以 b 的商和余数,中间用空格隔开。

解题思路

本题旨在考察对整数算术运算的掌握,特别是除法和模运算(取余)。

  1. 读取输入:首先从标准输入读取两个整数,a(被除数)和 b(除数)。
  2. 计算商:使用整数除法运算符(在C++/Java中是 /,在Python中是 //)计算 a 除以 b 的整数商。
  3. 计算余数:使用模运算符(在C++/Java/Python中都是 %)计算 a 除以 b 的余数。
  4. 输出结果:将计算出的商和余数按顺序输出,并用一个空格分隔。

代码

#include <iostream>

using namespace std;

int main() {
    int a, b;
    cin >> a >> b;
    // a / b 得到整数商, a % b 得到余数
    cout << a / b << " " << a % b << endl;
    return 0;
}
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        // a / b 得到整数商, a % b 得到余数
        System.out.println(a / b + " " + a % b);
    }
}
# 读取输入并转换为整数
a, b = map(int, input().split())
# divmod(a, b) 函数直接返回一个包含商和余数的元组
quotient, remainder = divmod(a, b)
print(quotient, remainder)

算法及复杂度

  • 算法:基础整数算术。
  • 时间复杂度: - 仅涉及常数时间的I/O和计算。
  • 空间复杂度: - 仅需常数空间存储变量。