《算法笔记》3.5进制转换
2019-08-26 本文已影响0人
想要金虎的rui酱
题目描述
输入两个非负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 a,b,d,c;
int z[40],num=0;
int i;
int y;
scanf("%d%d%d",&a,&b,&d);
c=a+b;
y=c;
do
{
z[num++]=y%d;
y=y/d;
}while(y!=0);
for(i=num-1;i>=0;i--)
{
printf("%d",z[i]);
}
return 0;
}
P进制转换为十进制
int y=0,product=1;
while(x!=0)
{
y=y+(x%10)*product;
x=x/10;
product=product*P;
}
十进制数y转换Q进制数z
int z[40],num;
do{
z[num++]=y%Q;
y/=Q;
}while(y!=0)
for(int i=num-1;i>=0;i++)
{
printf("%d",z[i]);
}