• 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 }
     
  • 相关阅读:
    oracle 主键自动地址实现
    解构赋值
    那些朋友那些话系列
    那些朋友那些话
    白鹭记事
    该如何存在
    上海秋季HCC小记
    For the person you never see again
    寻城记
    2013年的国庆
  • 原文地址:https://www.cnblogs.com/oaoa/p/10738417.html
Copyright © 2020-2023  润新知