python3任意位数的磁力数求法

from collections import Counter
def split(n, numberlist):
    numberlist.clear()
    while(n > 0):
        mod = n % 10
        n = int( n / 10)
        numberlist.append(mod)
    return numberlist

def combine(list, k):
    temp = 0
    for i in range(k):
        temp1 = list[i] * pow(10, k - i -1)
        temp = temp + temp1
    return temp
def differ(n):
    if n < 10:
        return n * 10 - n #加入2位数的磁力数判断,如果差值为个位数的情况
    else:
        split(n, list)
        list.sort()
        listmin = list.copy()
        list.reverse()
        max = combine(list, len)
        min = combine(listmin, len)
        return max - min
n = eval(input("input a number: "))
len = len(str(n))
list = []
L = []
lst = []
 
n = differ(n)
counter = Counter()
 
while 10 not in counter.values():
   
    L.append(n)
    n = differ(n)
    counter = Counter(L)
d = dict(counter)
print(d)
for key in d:
    if d[key] > 8:
        lst.append(key)
print(lst)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值