Dont forget when to push back "0"
/*
本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A = B * Q + R成立。
输入格式:
输入在1行中依次给出A和B,中间以1空格分隔。
输出格式:
在1行中依次输出Q和R,中间以1空格分隔。
输入样例:
123456789050987654321 7
输出样例:
17636684150141093474 3
*/
#include <string>
#include <algorithm>
#include <iostream>
using namespace std;
void main(){
string a, ans;
int b;
cin >> a >> b;
ans.clear();
int remain = 0;
for (int i = 0; i < a.size(); i++){
int tmp = a[i] - '0';
if (remain == 0){
if (tmp < b){
remain = tmp;
if (i==0)
continue;
else
ans.push_back('0');
}
else{
remain = tmp % b;
char cnt = '0' + tmp / b;
ans.push_back(cnt);
continue;
}
}
else{
int big = remain * 10 + tmp;
remain = big % b;
char cnt = '0' + big / b;
ans.push_back(cnt);
continue;
}
}
cout << ans << " "<<remain;
system("pause");
}