输入两个非负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]);
}
}
结果: