Skip to content

1017 A除以B

Statement

Metadata

  • 作者: CHEN, Yue
  • 单位: 浙江大学
  • 代码长度限制: 16 KB
  • 时间限制: 100 ms
  • 内存限制: 64 MB

本题要求计算 A/B,其中 A 是不超过 1000 位的正整数,B 是 1 位正整数。你需要输出商数 Q 和余数 R,使得 A = B \times Q + R 成立。

输入格式

输入在一行中依次给出 AB,中间以 1 空格分隔。

输出格式

在一行中依次输出 QR,中间以 1 空格分隔。

输入样例

123456789050987654321 7

输出样例

17636684150141093474 3

Solution

#include <bits/stdc++.h>
using namespace std;
#define MAXN 1000
int n[MAXN];
int main() {
    string s;
    int a, num;
    cin >> s >> a;
    int len = s.size(), i, j = 0;
    if (len > 1) {
        num = s[0] - '0';
        if (num / a)
            n[j++] = num / a;
        num %= a;
        num *= 10;
        for (i = 1; i < len; i++) {
            num += s[i] - '0';
            n[j++] = num / a;
            num %= a;
            num *= 10;
        }
        for (i = 0; i < j; i++) printf("%d", n[i]);
        printf(" %d\n", num / 10);
    } else {
        printf("%d %d\n", (s[0] - '0') / a, (s[0] - '0') % a);
    }
}

Last update: May 4, 2022
Back to top