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 }
复制代码

 

 

本文作者:oaoa

本文链接:https://www.cnblogs.com/oaoa/p/10738417.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   喵喵队立大功  阅读(241)  评论(0编辑  收藏  举报
评论
收藏
关注
推荐
深色
回顶
收起
点击右上角即可分享
微信分享提示