D进制的A+B

链接:https://www.nowcoder.com/questionTerminal/52fee0e0ffc44d258b8f940184017c00
来源:牛客网
 

输入两个非负10进制整数A和B(<=230-1),输出A+B的D (1 < D <= 10)进制数

输入描述:

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

输出描述:

输出A+B的D进制数。

示例1

输入

123 456 8

输出

1103

方法一:最基本的方法,辗转相除

a, b, d = map(int, input().split())
sum = a + b
quotient = 1
mods = []
while quotient != 0:  #辗转相除直到商为零
    quotient = sum // d
    mods.append(str(sum%d))
    sum = quotient
mods.reverse()
print("".join(mods))

方法二:递归

#author:华科平凡

def baseN(num, b):
    return ((num == 0) and "0") or (baseN(num // b, b).lstrip("0") + "0123456789abcdefghijklmnopqrstuvwxyz"[num % b])


a, b, c = map(int, input().split())
print(baseN(a + b, c))

tips:

Python lstrip() 方法用于截掉字符串左边的空格或指定字符。

语法

lstrip()方法语法:

str.lstrip([chars])

参数

  • chars --指定截取的字符。

返回值

返回截掉字符串左边的空格或指定字符后生成的新字符串。

#!/usr/bin/python

str = "     this is string example....wow!!!     ";
print str.lstrip();
str = "88888888this is string example....wow!!!8888888";
print str.lstrip('8');

#output
this is string example....wow!!!
this is string example....wow!!!8888888

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值