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