1017 A除以B (20 分)
本题要求计算 A/B,其中 A 是不超过 1000 位的正整数,B 是 1 位正整数。你需要输出商数 Q 和余数 R,使得 A=B×Q+R 成立。
输入格式:
输入在一行中依次给出 A 和 B,中间以 1 空格分隔。
输出格式:
在一行中依次输出 Q 和 R,中间以 1 空格分隔。
输入样例:
123456789050987654321 7
输出样例:
17636684150141093474 3
代码
#include <iostream>
#include <string.h>
using namespace std;
int main() {
char n[1005];
int d, r, i = 0;
cin >> n>> d;
int len = strlen(n);
if (len == 1) {
cout << (n[0] - '0') / d << " " << (n[0] - '0') % d;
}
else {
if ((n[0] - '0') / d > 0) cout << (n[0] - '0') / d;
r = (n[0] - '0') % d;
for (int i = 1; i < len; i++) {
cout << (r * 10 + n[i] - '0') / d;
r = (r * 10 + n[i] - '0') % d;
}
cout << " " << r;
}
return 0;
}
如果测试点2未过,未考虑A只有一位的情况,如A = 4,B=9;应输出0 4;