Python Persistance-List

时间:2014-09-27 20:16:17

标签: python list

将整数的数字相乘并继续该过程会产生令人惊讶的结果,即产品序列始终以一位数字的形式到达。例如: 71535/155886424827144 达到一位数所需的产品数称为持久数 那个整数。因此,715和88的持久性数为3,而27持续性为2。 制作一个程序,找到持久性大于3的唯一两位数字? 这就是问题所在。

for i in range(10,100):
    for l in range(i):
        numbers = list(str(l))
        num = int(numbers[0]) * int(numbers[1])

这就是我所拥有的。请帮忙

2 个答案:

答案 0 :(得分:0)

每个人都认为这是一个糟糕的问题,所以我觉得回答并帮助你作弊是不好的:( 但这很有趣! :)并且解决问题是一个标志,你很聪明,嘿,并没有真正尝试是相反的迹象。

def newn(n):
    numbers = [int(c) for c in str(n)]
    new = 1
    for i in numbers:
        new *= i
    digits = len(str(new))
    return new, digits

for n in xrange(99,9,-1):
    if persistence > 3:
        print 'persistence %i, number %i' % (persistence, n + 1)
        break

    digits, persistence = 2, 0
    while digits != 1:
        persistence += 1
        n, digits = newn(n)

答案 1 :(得分:0)

答案是7749转到36,转到18,转到8

def multiply_digits(x):
    total = 1
    for digit in str(x):
        total *= int(digit)
    return total

for value in range(11, 100):
    new_value = multiply_digits(value)
    persistance = 1
    while new_value >= 10:
        new_value = multiply_digits(new_value)
        persistance += 1
        if persistance > 3:
            print value