我的PAT-BASIC代码仓:https://github.com/617076674/PAT-BASIC
原题链接:https://pintia.cn/problem-sets/994805260223102976/problems/994805299301433344
题目描述:
知识点:进制转换
思路:以十进制表示A+B的值,再转换为D进制数
注意如果A+B的值为0时,需要输出0。
时间复杂度是O((A + B) / D)。空间复杂度是O(1)。
C++代码:
#include<iostream>
#include<vector>
using namespace std;
int main() {
int num1;
int num2;
int d;
cin >> num1 >> num2 >> d;
int sum = num1 + num2;
vector<int> nums;
if (sum == 0) { //如果不对sum == 0的情况做特殊处理,测试点3不能通过
cout << 0;
return 0;
}
while (sum > 0) {
nums.push_back(sum % d);
sum /= d;
}
for (int i = nums.size() - 1; i >= 0; i--) {
cout << nums[i];
}
}
C++解题报告: