1017. A除以B (20)

题目描述

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

输入格式:

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

输出格式:

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

输入样例:

123456789050987654321 7

输出样例:

17636684150141093474 3

提交代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
using namespace std;
int main()
{
string a, q;
int b, r = 0;
int i, j = 0;

cin >> a >> b;
if (a[0] - '0' >= b) {
q = (a[0] - '0') / b + '0';
r = (a[0] - '0') % b;
} else {
q = "";
r = a[0] - '0';
}
for (i = 1; i < a.length(); i++) {
r = r * 10 + a[i] - '0';
q += (r / b + '0');
r = r % b;
j++;
}
   if (q == "") q = "0"; // 除数为零的情况
   cout << q << " " << r << endl;

return 0;
}