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
作者: CHEN, Yue
单位: 浙江大学
时间限制: 100 ms
内存限制: 64 MB
思路:
大数模拟除法。
扫描二维码关注公众号,回复:
6755710 查看本文章
#include <iostream>
#include <string>
using namespace std;
int main() {
string num;
int n = 0, sum = 0;
cin >> num >> n;
for (int i = 0; i < num.size(); i++) {
if (sum == 0 && (num[i] -'0') < n && i != num.size() - 1) {
if (i != 0)
cout << '0';
sum += (num[i]- '0') * 10;
i++;
sum += num[i] -'0';
}
else {
sum *= 10;
sum += num[i] -'0';
}
cout << sum / n;
sum %= n;
}
cout << ' '<< sum << endl;
return 0;
}