关闭

1017. A除以B (20)

151人阅读 评论(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 <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
string division(string &n,char b,int &r)
{
    string q;
    for(auto x:n)
    {
        q+='0'+(r*10+x-'0')/(b-'0');
        r=(r*10+x-'0')%(b-'0');
    }
    unsigned int i=0;
    while(i<q.size()&&q[i]=='0') ++i;
    return i==q.size()?"0":q.substr(i,q.size()-i);
}
int main()
{
    string a;
    char b;
    cin>>a>>b;
    int r=0;
    string q=division(a,b,r);
    cout<<q<<" "<<r;
    return 0;
}
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:66210次
    • 积分:3717
    • 等级:
    • 排名:第9291名
    • 原创:319篇
    • 转载:9篇
    • 译文:0篇
    • 评论:10条
    最新评论