输入两个非负 10 进制整数 A 和 B (≤2
30
−1),输出 A+B 的 D (1<D≤10)进制数。
输入格式:
输入在一行中依次给出 3 个整数 A、B 和 D。
输出格式:
输出 A+B 的 D 进制数。
输入样例:
123 456 8
输出样例:
1103
###进制转换
//p进制改十进制
int n=0,product=1; //n为结果十进制数
while(x!=0){ //因y=0了,故即使x=0,结果也是十进制y=0,无须使用
n=n+(x%10)*product; //do... while运行一次
x=x/10;
product*=p;
}
//十进制转p进制
int a[40],num=0,p; //num位数,p进制
cin>>n;
cin>>p;
do{
a[num++]=n%p; //除基取余
n=n/p; //下一步,除基取商
} while(n!=0);
思路:先进行十进制加法A+B,结果转为八进制。
#include<iostream>
using namespace std;
int main(){
int A,B,D,n;
cin>>A>>B;
n=A+B;
cin>>D; //D进制
int a[40],num=0;
do{
a[num++]=n%D;//除基取余
n/=D; //除基取商
}while(n!=0);
for(int i=num-1;i>=0;i--){ //从高位向低位输出
cout<<a[i];
}
return 0;
}