1 /* 2 题目描述 3 输入两个非负十进制整数A和B(<=2^30-1)以及D(进制数), 4 输出A+B的D(1 < D <= 10)进制数。 5 6 输入格式 7 在一行中依次给出三个整数A, B和D(进制数)。 8 9 输出格式 10 A+B的D进制数 11 12 输入样例 13 123 456 8 14 15 输出样例 16 1103 17 18 思路 19 先计算A+B(此时为十进制),然后把结果转换为D进制, 20 而十进制转换为D进制的过程可以直接进行“除基取余法”。 21 */ 22 23 #include <iostream> 24 #include <stdio.h> 25 using namespace std; 26 27 int main() 28 { int a,b,d; 29 scanf("%d%d%d",&a,&b,&d); 30 int sum=a+b; 31 int ans[31],num=0; //ans存放D进制的每一位 32 do{ //进制转换 33 //t=sum%d; 34 //printf("%d",t); 35 ans[num++]=sum%d; 36 sum/=d; 37 } while (sum!=0); //num最终等于4 38 for(int i=num-1;i>=0;i--) //从高位到低位进行输出 39 printf("%d",ans[i]); 40 return 0; 41 }
时间: 2024-11-08 03:55:38