1022 D进制的A+B (20 分)
输入两个非负 10 进制整数 A 和 B (≤2
30
−1),输出 A+B 的 D (1<D≤10)进制数。
输入格式:
输入在一行中依次给出 3 个整数 A、B 和 D。
输出格式:
输出 A+B 的 D 进制数。
输入样例:
123 456 8
输出样例:
1103
#include<stdio.h>
int main()
{
int i,j;
long a,b,d;
long sum=0;
int jin[31],k=0;
scanf("%ld %ld %ld",&a,&b,&d);
sum = a+b;
if(sum==0) //这里要注意判断当和等于0的情况,直接输出0,不然进入循环要入坑
{
printf("0");
return 0;
}
while(sum!=0) //十进制转化为八进制就是一直除以8,每次的余数就是八进制的每一位数,当sum=0时,跳出循环
{
jin[k++]=sum%d;
sum/=d;
}
for(i=k-1;i>=0;i--) //数组输出八进制数时,要注意倒叙输出
printf("%d",jin[i]);
return 0;
}