题目链接:点击打开链接
输入两个非负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;
}
我以前写过用栈进行进制转换的程序,链接在这里:栈进制转换
本文介绍了一个使用栈实现的C++程序,用于将两个非负十进制整数相加并转换为指定进制输出。程序通过读取输入的整数A、B和目标进制D,计算A+B,并将结果转换为D进制数输出。此外,文章提供了一个已有的栈进制转换程序链接作为参考。
1003

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



