《算法笔记》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]);
}


上一篇下一篇

猜你喜欢

热点阅读