PAT-B 1022 D进制的A+B【进制】

                                             PAT-B 1022 D进制的A+B

                      https://pintia.cn/problem-sets/994805260223102976/problems/994805299301433344

题目

输入两个非负 10 进制整数 A 和 B (≤2​^30​​−1),输出 A+B 的 D (1<D≤10)进制数。

输入

输入在一行中依次给出 3 个整数 A、B 和 D。

输出

输出 A+B 的 D 进制数。

样例输入

123 456 8

样例输出

1103

分析

简单进制转换,程序使用递归函数实现,具体看程序。

C++程序

#include<iostream>

using namespace std;

//将十进制整数n转换成base进制 
void convert(int n,int base)
{
	if(n)
	{
		convert(n/base,base);
		char c=(n%base>9)?('A'+n%base-10):('0'+n%base);
		printf("%c",c);
	}
}

int main()
{
	int a,b,c,d;
	scanf("%d%d%d",&a,&b,&d);
	c=a+b;
	if(c==0)
	  printf("0");
	else
	  convert(c,d);
	return 0;
}

猜你喜欢

转载自blog.csdn.net/SongBai1997/article/details/87697468