PAT-B 1022 D進位制的A+B【進位制】

Enjoy_process發表於2019-02-19

                                             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;
}

 

相關文章