我的代码需要帮助。它应该将我提供的数字中的数字乘以输入。这不起作用,因为每次我运行程序时,这都是我得到的:
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()
答案 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)