题目链接:点击打开链接
输入两个非负10进制整数A和B(<=230-1),输出A+B的D (1 < D <= 10)进制数。
输入格式:
输入在一行中依次给出3个整数A、B和D。
输出格式:
输出A+B的D进制数。
输入样例:123 456 8输出样例:
1103我的c++程序:
#include<stack>
#include<iostream>
using namespace std;
int main()
{
int a, b,c,d;//c=a+b,d是进制
stack<int> st;
cin >> a >> b>>d;
c = a + b;
if (d > 1 && d <= 10)//当进制合理时
{
if (c != 0)//当c!=0才需要进行进制转换,c=0直接输出0
{
while (c != 0)
{
st.push(c%d);//取余数入栈
c = c / d;
}
while (!st.empty())//输出栈元素,先进后出
{
cout << st.top();
st.pop();
}
}
else
{
cout << 0;
}
}
//system("pause");
return 0;
}
我以前写过用栈进行进制转换的程序,链接在这里:栈进制转换