1017 A除以B

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

输入格式:

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

输出格式:

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

输入样例:

123456789050987654321 7

输出样例:

17636684150141093474 3
 1 #include<iostream>
 2 #include<string>
 3 
 4 using namespace std;
 5 
 6 int main() {
 7     string s;   //存A
 8     int b, tmp = 0, t = 0;
 9     cin >> s >> b;
10     t = (s[0] - '0') / b;
11     //商不为0 并且 长度大于1 或者 长度等于1  输出第一个字符
12     //不满足条件的说明,第一个不用上位,商为0,但是因为在最前面,所以不用输出
13     if ((t != 0 && s.length() > 1) || s.length() == 1) { 
14         cout << t;        
15     }
16     //用tmp保存余数
17     tmp = (s[0] - '0') % b;
18 
19     for (unsigned int i = 1; i < s.length(); i++) {
20         t = (tmp * 10 + s[i] - '0') / b;  //第一个数字已经保存在tmp中  从i=1也就是第二个开始
21         cout << t;    //输出商
22         tmp = (tmp * 10 + s[i] - '0') % b; //保存余数
23     }
24     cout << ' ' << tmp;
25     return 0;
26 
27 }
 
原文地址:https://www.cnblogs.com/oaoa/p/10738417.html