输入两个非负 10 进制整数 A 和 B (≤230−1),输出 A+B 的 D (1<D≤10)进制数。
输入格式:
输入在一行中依次给出 3 个整数 A、B 和 D。
输出格式:
输出 A+B 的 D 进制数。
输入样例:
123 456 8
输出样例:
1103
#include<stdio.h>
int main()
{
int A,B,D;
char a[100];
int i=0,c=0;
scanf("%d %d %d",&A,&B,&D);
int sum=A+B;
if(sum<D)
{
printf("%d",sum);
}
else
{
while(sum>0)
{
a[i++]=sum%D+'0';
if(a[i]>=10+'0' && a[i]<=15+'0')
{
switch(a[i])
{
case 10:a[i]='A';break;
case 11:a[i]='B';break;
case 12:a[i]='C';break;
case 13:a[i]='D';break;
case 14:a[i]='E';break;
case 15:a[i]='F';break;
}
}
sum/=D;
c++;
}
for(int i=c-1;i>=0;i--)
{
printf("%c",a[i]);
}
}
}
题目不难 就是要考虑全面 一种是AB之和如果小于D 就直接输出AB的和
第二种是 要考虑到字母(参考16进制)