进制转换
输入两个非负 10 进制整数 A 和 B (≤230 −1),输出 A+B 的 D (1<D≤10)进制数。
输入格式
输入在一行中依次给出 3 个整数 A、B 和 D。
输出格式
输出 A+B 的 D 进制数。
输入样例
123 456 8
输出样例
1103
主要思路
这道题比较简单,输出a+b进制转换之后的结果,可以先计算a+b,此时为10进制,然后10进制转换为其他进制,用的是“除基取余法”,这个是很基本的,入门教材应该都有,不知道的可以取查一下。最小为2进制,2进制应该有30位数,所以可以定义一个31位的数组来存放转换后的数字。值得注意的是
1.输出时是从最后的数字往前输出,要注意数组的下标,上一个循环中i++最后又执行了一次,所以记得输出时下标第一个计数i要-1。
2.另外一般用来计算或者做下标的变量定义要记得初始化为0.
C语言代码
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <math.h>
int main()
{
int a,b,d,num;
scanf("%d %d %d",&a,&b,&num);
d=a+b;//十进制的a+b存入
//转换进制
int np[31],i=0;//定义一个数组存储转换后的数字
do
{
np[i]=d%num;
i++;
d=d/num;
}while(d>0);
for(int j=i-1;j>=0;j--)
{
printf("%d",np[j]);
}
return 0;
}