PAT_B 1022 D进制的A+B

PAT_B 1022 D进制的A+B

分析

按照题目要求进行处理即可,进制转换的方法为:待转换数每次除基数(进制数)后记录余数直至待转换数为0,余数的逆序即为转换进制后的结果

题目的描述

输入两个非负 10 进制整数 AB \((≤2^{30}−1)\),输出 A+BD (1<D≤10)进制数。

输入格式:

输入在一行中依次给出 3 个整数 ABD

输出格式:

输出 A+BD 进制数。

输入样例:

123 456 8

输出样例:

1103

鸣谢用户谢浩然补充数据!

AC的代码

#include<bits/stdc++.h>

using namespace std;

int main(){
    long long A,B,D;
    cin>>A>>B>>D;
    //vector<long long> num;
    string num;
    A+=B;
    if(A==0){
        cout<<0<<endl;
        return 0;
    }
    while(A){
        //num.push_back(A%D);
        num+='0'+A%D;
        A/=D;
    }

//     for(auto i=num.rbegin();i!=num.rend();i++){
//         cout<<(*i);
//     }    
//     cout<<endl;
    reverse(num.begin(),num.end());
    cout<<num<<endl;

    return 0;
}
posted @ 2022-01-24 22:44  ghosteq  阅读(22)  评论(0编辑  收藏  举报