PAT1017

作者: hsinsDfy | 来源:发表于2018-09-27 09:48 被阅读0次

    1017 A除以B (20 分)

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

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

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

    123456789050987654321 7

    输出样例:

    17636684150141093474 3
    注意:
    卡点样例:输入:2 3
    输出:0 2

    #include<iostream>
    #include<vector>
    #include<string>
    using namespace std;
    int main(){
        string a;
        vector<int>A;
        vector<int>Q;
        int B,R;
        int i,temp=0;
        cin>>a>>B;
        for (int i = 0; i < a.size(); i++)
        {
            A.push_back(a[i]-'0');
        }
            
    
        vector<int>::iterator it;
        vector<int>::iterator k;
        for(it=A.begin();it!=A.end();++it){
            if(*it!=0){
                k=it;
            break;
            }
        }
        for(it=k;it!=A.end();++it){
            
            int q=(temp+*it)/B;
            Q.push_back(q);
            R=(temp+*it)%B;
            temp=R*10;
        }
        if(Q.size()>1){
        if (*Q.begin()!=0)
        {
            for(it=Q.begin();it!=Q.end();++it){
            cout<<*it;
            }
        }
        else
        {
            for(it=Q.begin()+1;it!=Q.end();++it){
            cout<<*it;
            }
        }
        }
        else
            cout<<*(Q.begin());
        
        cout<<" "<<R;
        system("pause");
        return 0;
    }
    

    相关文章

      网友评论

        本文标题:PAT1017

        本文链接:https://www.haomeiwen.com/subject/cugsoftx.html