PAT 乙级 1017 A除以B

题目

题目详情 (pintia.cn)

使用string来存放大数,解题思路相当于模仿手算

最后有一个需要注意的地方,测试点二是一个a小于b的情况,这种情况商为0,余数为a

#include <iostream>
#include<stdio.h>
#include<string>
#include<algorithm>
#include<math.h>

using namespace std;

int main()
{
    string a;
    int b;
    string q="";
    long r=0;
    cin>>a>>b;

    for(int i=0;i<a.size();i++)
    {
        r=r*10+a[i]-48;
        char c=r/b+48;
        if(q==""&&c=='0')
            q=q;
        else
            q=q+c;
        r=r-(r/b)*b;
    }
    if(q!="")
        cout<<q<<" "<<r<<endl;
    else
        cout<<0<<" "<<a<<endl;  //特殊情况a<b  商为0,余数为a
    return 0;
}

 

posted @ 2021-11-09 15:29  Mr。atopos  阅读(35)  评论(0)    收藏  举报