PAT乙级-1017 A除以B
馨er BOSS

大数运算

题目

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

输入格式:

输入在一行中依次给出 $A$ 和 $B$,中间以 1 空格分隔。

输出格式:

在一行中依次输出 $Q$ 和 $R$,中间以 1 空格分隔。

输入样例:

1
123456789050987654321 7

输出样例:

1
17636684150141093474 3

题解

手动模拟除法。这道题我用万能头文件 bits/stdc++.h 最后一个测试点超时了,事实证明,头文件还是记记比较好

我的代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<iostream>
using namespace std;
int main() {
string a;
int b, m, n;
cin >> a >> b;
int len = a.length();
m = (a[0] - '0') / b;
if ((m != 0 && len > 1) || len == 1)
cout << m;
n = (a[0] - '0') % b;
for (int i = 1; i < len; i++) {
m = (n * 10 + a[i] - '0') / b;
cout << m;
n = (n * 10 + a[i] - '0') % b;
}
cout << " " << n;
return 0;
}

题目链接

  • 本文标题:PAT乙级-1017 A除以B
  • 本文作者:馨er
  • 创建时间:2021-05-11 17:28:24
  • 本文链接:https://sjxbbd.vercel.app/2021/05/11/8c2263b9d9fb/
  • 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!