python中的乘法持久性

时间:2016-02-24 20:19:16

标签: python

我的代码需要帮助。它应该将我提供的数字中的数字乘以输入。这不起作用,因为每次我运行程序时,这都是我得到的:

multiplicative persistence result:  0
multiplicative persistence result:  0
multiplicative persistence result:  0
multiplicative persistence result:  0

这只是继续循环。

second = str(raw_input("what number do you want to apply the multiplicative persistence to? "))
while len(second)>1:
    ans=0
    for num in second:
        ans=ans * int(num)
    b=str(ans)
    print "multiplicative persistence result: ",b
raw_input()

6 个答案:

答案 0 :(得分:0)

你没有减少def solve_to_1(second): answ = 1 for num in second: answ *= int(num) print "Intermediate:",answ if answ >= 10: #still to big recursively call it return solve_to_1(str(answ)) return answ result = solve_to_1("1234123") print "FINAL:",result 因此当然永远不会退出

while(temp2 != NULL)
{
    temp2 = temp2->next;
}

答案 1 :(得分:0)

second = input("what number do you want to apply the multiplicative persistence to? ")

result = 1
for digit in second:
    result *= int(digit)

答案 2 :(得分:0)

你的while循环总是返回true,因此循环继续运行。 而只是遍历你正在拆包的字符串。

for num in second:
    ...

答案 3 :(得分:0)

您设置的循环是无限的。要使用while循环,您需要修改它使用的条件,在本例中为*/15 17-18 * * 6 [ $(date '+\%d') -gt 7 ] && <Then run your script>

答案 4 :(得分:0)

我有一个简单的工作

def per(n,steps=0):
    if len (str(n))==1:
        print(n)
        print "TOTAL STEPS" + str(steps)
        return "DONE"
steps += 1
digits = [int(i)for i in str(n)]
result = 1
for j in digits:
    result *= j
print(result)
per(result,steps)
  
    
      

每(277777788888899)

    
  

在方节里面放了任何数字,但我不知道极限

贷记给Numberphile 视频===== https://youtu.be/Wim9WJeDTHQ 频道===== Numberphile(在youtube中) 抱歉,我没有将链接复制到YouTube频道的方法 它工作正常,我目前正在尝试对其进行改进,以使其循环从1开始到无穷大,并在达到12的乘性余辉时停止。

答案 5 :(得分:0)

这是一个简单的程序,用于计算数字的持久性:

number = int(input("enter number"))
product = 1
persistence = 0
print(number)
while number > 9:
    for digit in range(0, len(str(number))):
        product *= int(str(number)[digit])
    print(product)
    persistence += 1
    number = product
    product = 1
print("persistence:", persistence)