【PAT】1017 A除以B(20 分)
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
模拟手动除法过程
C++代码如下:
1 #include<iostream> 2 #include<string> 3 using namespace std; 4 5 int main() { 6 string s; 7 int d,div,mod; 8 cin >> s>>d; 9 int len = s.length(); 10 div = (s[0] - '0') / d; 11 mod = (s[0] - '0') % d; 12 if ( div != 0 || len == 1) 13 cout << div; 14 for (int i = 1; i < len; i++) { 15 div = (mod * 10 + (s[i] - '0')) / d; 16 cout << div; 17 mod = (mod * 10 + (s[i] - '0')) % d; 18 } 19 cout << ' ' << mod << endl; 20 return 0; 21 }