a+b的结果可能为0 ,详见注释
(该题踩的坑与乙级1012类似,1012链接)
正确代码:
#include<iostream>
#include<stack>
using namespace std;
int main() {
int a, b, d, sum;
cin >> a >> b >> d;
sum = a + b;
stack<int> st;
while(sum) {
st.push(sum % d);
sum = sum / d;
}
if(st.empty() && sum == 0) cout << 0; // ======= 需特判 0 的情况 ===========
while(!st.empty()){
cout << st.top();
st.pop();
}
return 0;
}