[PAT解题报告] D进制的A+B (20)

转载 from http://tech-wonderland.net/blog/pat-basic-level-practise-1021-1025-solutions.html

解题思路: 水题, 简单的进制转换算法, 不断的求余数即可, 注意A+B可能等于零的这种特殊情况. 下面是AC代码:
#include <iostream>
#include <string>
#include <algorithm>

std::string gao(int iNum, int iRadix)
{
    if(0 == iNum) return "0";
    std::string strResult("");
    while(iNum) {
        strResult.push_back(iNum % iRadix + '0');
        iNum /= iRadix;
    }
    std::reverse(strResult.begin(), strResult.end());
    return strResult;
}

int main()
{
    int A, B, D;
    std::cin >> A >> B >> D;
    if(10 == D) {
        std::cout << A + B << std::endl;
        return 0;
    }
    std::cout << gao(A + B, D) << std::endl;
    return 0;
}

全部评论

相关推荐

每晚夜里独自颤抖:你cet6就cet6,cet4就cet4,你写个cet证书等是什么意思。专业技能快赶上项目行数,你做的这2个项目哪里能提现你有这么多技能呢
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务