十进制数转化为D进制数

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

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

输出格式:
输出 A+B 的 D 进制数。

输入样例:

123 456 8

输出样例:

1103

思路:
除基取余法。“基”就是要转化的进制D,将十进制数每次除以D取余数,直到商变为0为止。
从前到后取得的余数,按低位到高位放置,然后按高位到地位输出就是最终结果。

代码:

#include <iostream>   
using namespace std;

int main()
{
	int a, b, d;
	int sum;
	int result[31];    //存放转换后的二进制数
	int n = 0;    //result的位指针
	cin >> a >> b >> d;
	sum = a + b;
	do
	{
		result[n++] = sum % d;    //取余数
		sum /= d;    //计算商
	} while (sum != 0);
	for (int i = n - 1; i >= 0; --i)
		cout << result[i];
}
原文地址:https://www.cnblogs.com/banmei-brandy/p/14285961.html