输入两个非负 10 进制整数 A 和 B (≤230-1),输出 A+B 的 D (1<D≤10)进制数。
输入格式:
输入在一行中依次给出 3 个整数 A、B 和 D。
输出格式:
输出 A+B 的 D 进制数。
输入样例:
123 456 8
输出样例:
1103
就是模拟10进制转其他进制的转换方法
不断用sum=sum/D,并且取每次的余数,直至sum==0,最后将所有余数倒序输出。
以下代码:
#include<cstdio>
#include<stack>
using namespace std;
int main()
{
int A,B,D;
while(scanf("%d%d%d",&A,&B,&D)!=EOF)
{
int sum=A+B;
stack<int> ans; //可以用栈来倒序输出
if(sum==0) //注意对sum一开始就是0的情况特判
printf("0");
else
{
while(sum!=0) //处理
{
ans.push(sum%D);
sum/=D;
}
while(!ans.empty()) //输出
{
printf("%d",ans.top());
ans.pop();
}
}
printf("\n");
}
return 0;
}