输入两个非负 10 进制整数 A 和 B (≤230 −1),输出 A+B 的 D (1<D≤10)进制数。
输入格式:
输入在一行中依次给出 3 个整数 A、B 和 D。
输出格式:
输出 A+B 的 D 进制数。
输入样例:
123 456 8
输出样例:
1103
代码:
A, B, D = map(int, input().split())
num=A+B
result = []
while num> 0:
num, rem = divmod(num, D)
result.append(rem)
result.reverse()
if A+B==0:
result=[0]
print("".join(str(i) for i in result))
- 首先将要转换的数字设为 num,目标进制设为 n。
- 使用 divmod(num, n) 函数获得整数除法和取模运算的结果,分别存储在商和余数的变量中。
- 将余数放入一个数组中。
- 将 num 设为商,继续进行除法运算,直到商为 0 为止。
- 倒序输出数组中的余数,得到转换后的结果。
这种方法的核心思想是利用每一位的余数来表示这一位在进制中的值,并且通过不断的除法来逐位计算得到每一位在不同进制中的数字,最后再将这些数字反序输出,就能得到进制转换后的结果。