PAT-B 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

思路:进制的转化,题目要求是从十进制转化为2进制或者8进制

总体思路: 除商、取余、倒排。

代码:

#include <cstdio>
int main()         //实现a+b的d进制转化     除商、取余、倒排
{
	int i,a,b,d,sum,num=0;                //先统一定义变量,数字a,b,和sum
	int str[100]={0};                        //定义一个数组进行存储取余后的操作
	printf("please input two numbers:");
	scanf("%d %d %d",&a,&b,&d);           //从用户得到 a b 和进制数
	sum=a+b;

	do{                                //用do while();语句,进行:除商、取余、
		str[num++]=sum%d;
		sum=sum/d;
	}while(sum!=0);

	for(i=num-1; i>=0; i--)           //用一个for语句进行倒排
	{
		printf("%d",str[i]);
	}
}

结果:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值