PAT-B1022题解

【题目描述】
输入两个非负10进制整数A和B(<=230-1),输出A+B的D (1 < D <= 10)进制数。

【输入格式】:
输入在一行中依次给出3个整数A、B和D。

【输出格式】:
输出A+B的D进制数。

【输入样例】:

123 456 8

【输出样例】:

1103

思路:先计算A+B(此时为十进制),然后把结果转换成D进制,而十进制转换为D进制进行“除基取余法”

AC代码:
“`

include

int main(){
int a,b,d;
scanf(“%d%d%d”,&a,&b,&d);
int sum=a+b;
int ans[31],num=0; //ans存放D进制的每一位
do{ //进制转换
ans[num++]=sum%d;
sum=sum/d;
}while(sum!=0);
for(int i=num-1;i>=0;i–){ //从高位到低位进行输出
printf(“%d”,ans[i]);
}
return 0;
}


更多的请查看我的个人博客:https://beatjerome.github.io

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值