1022 D进制的A+B (20 分)
输入两个非负 10 进制整数 A 和 B (≤2 30 −1),输出 A+B 的 D (1<D≤10)进制数。
输入格式:
输入在一行中依次给出 3 个整数 A、B 和 D。
输出格式:
输出 A+B 的 D 进制数。
输入样例:
123 456 8
输出样例:
1103
思路:本题主要考察对进制转换的理解,然后特别注意当A+B = 0时输出0即可。
进制转换,比如579转为8进制,过程如下:
首先,进行取余操作,579 % 8 = 3,并将每次取余得数保存在列表中
然后进行除以操作,579 // 8 = 72(注意,Python中“//”是整除
反复进行以上操作,直到结果为0,此时列表中应该为[3,0,1,1]
将列表反转,并依次打印,即可得到进制之后的数字,即1103
a,b,d = map(int,input().split())
sum = a+b
binary = []
if sum == 0:
print(0,end = '')
else:
while sum:
binary.append(sum%d)
sum //= d
binary.reverse()#反转列表,得到进制转换之后的数字
for i in binary:#输出反转以后的列表
print(i,end = '')
#直接使用print()函数,默认换行,end可以保持print不换行,
print()#结尾空行