原题链接:
https://www.patest.cn/contests/pat-b-practise/1022
原题描述:
输入两个非负10进制整数A和B(<=230-1),输出A+B的D (1 < D <= 10)进制数。
输入格式:
输入在一行中依次给出3个整数A、B和D。
输出格式:
输出A+B的D进制数。
输入样例:123 456 8输出样例:
1103
解题关键:
需要知道这道题的主要解题思想是:如何将十进制数转化为八进制数,与将十进制数转换为2进制数的思想相同,还需要考虑到特殊情况,就是如果a+b等于0的话,
要怎么处理
代码:
#include <bits/stdc++.h>
//如何把10进制数转化成8进制数
//还需要考虑特殊情况
using namespace std;
int main(){
int a,b,d,num[32];
cin>>a>>b>>d;
int c=a+b,k=0;
while(c>0){
num[k++]=c%d;
c=c/d;
}
//cout<<c;
//cout<<k;
for(int i=k-1;i>=0;i--)
cout<<num[i];
if(k==0)
cout<<"0";
return 0;
}