题目描述:
输入两个非负 10 进制整数 A 和 B ( ≤ (2^30) − 1),输出 A+B 的 D (1 < D ≤ 10)进制数。
输入格式:
输入在一行中依次给出 3 个整数 A、B 和 D。
输出格式:
输出 A+B 的 D 进制数。
输入样例:
123 456 8
输出样例:
1103
#include <iostream>
#include <stack>
using namespace std;
stack<int> getDNum(int Num,int D){
stack<int> s;
do {
s.push((Num % D));//取余
Num = Num / D;//除基
} while (Num != 0);
return s;
}
int main(){
int a,b,d,num;
cin >> a >> b >> d;
num = a + b;
stack<int> s = getDNum(num,d);
while (!s.empty()) {
cout << s.top();//栈为后入先出
s.pop();
}
cout << endl;
return 0;
}
本文介绍了一种将两个非负十进制整数相加,并将结果转换为D进制数的算法。该算法使用C++实现,通过栈结构逆序输出D进制数的每一位。输入包括两个待相加的整数A和B,以及目标进制数D。
1316

被折叠的 条评论
为什么被折叠?



