[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;
}
查看20道真题和解析