小明认为某些数字不吉利,付账时会尽可能少的多付一些钱,使得价格中不包含这些不吉利数字,并且不出现0.
例如,不吉利数字为1,4,7,8,商品价格为1000,小明实际支付2000.
实现程序,输入商品原来的价格price,不吉利数字集合unlucky_numbers,求小明付账时的价格lucky_price.
def numToLucky(price, li) :
if li == None or li == [] :
return price
num_li = [] #把price各位放入列表
lens = len(str(price))
for i in range(lens) :
if i == 0 :
tmp = price % 10
num_li.append(tmp)
else :
tmp = price // (10**i) %10
num_li.append(tmp)
num_li.append(0) #防溢出
i = 0
while i < lens :
while num_li[i] in li :
if num_li[i] >= 9 :
num_li[i] == (num_li[i] + 1) - 10
num_li[i+1] += 1
else :
num_li[i] += 1
i += 1
result = 0
for i in range(lens) :
tmp = num_li[i]*(10**i)
result += tmp
return result
if __name__ == "__main__" :
price = 1234
unlucky_numbers = [1,4,7,8]
lucky_price = numToLucky(price, unlucky_numbers)
print(lucky_price)
结果