[PAT解题报告] 部分A+B (15)
转载 from http://tech-wonderland.net/blog/pat-basic-level-practice-1016-1020-solutions.html
解题思路: 就是给定两个数字以及分别给出一个个位整数, 从这两个数种抽出只含有这个个位整数的部分, 相加求和. 注意用long long 存结果以及计算, 貌似int存不下. 下面是AC代码:
#include <string> #include <iostream> long long extractPNumber(const std::string str, int d) { int len = str.size(); long long itr = 1; long long res = 0; for(int i = 0; i < len; ++i) { if(str[i] - '0' == d) { res += d * itr; itr *= 10; } } return res; } int main() { std::string A, B; int Da, Db; std::cin >> A >> Da >> B >> Db; std::cout << extractPNumber(A, Da) + extractPNumber(B, Db) << std::endl; return 0; }