[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;
}

全部评论

相关推荐

牛大宝儿236:还没入职就PUA,[发火我之前遇到一个月给500块钱的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务