python中的乘法持久性
我需要代码方面的帮助。它应该乘以我作为输入提供的数字中的数字。这不起作用,因为每次我运行程序时,我得到的都是:python中的乘法持久性,python,Python,我需要代码方面的帮助。它应该乘以我作为输入提供的数字中的数字。这不起作用,因为每次我运行程序时,我得到的都是: multiplicative persistence result: 0 multiplicative persistence result: 0 multiplicative persistence result: 0 multiplicative persistence result: 0 这只是不断循环 second = str(raw_input("what numb
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()
你没有减少len(秒),所以它当然永远不会存在
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
你没有减少len(秒),所以它当然永远不会存在
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循环总是返回true,因此循环会继续进行。 而只是遍历正在解包的字符串
for num in second:
...
while循环总是返回true,因此循环会继续进行。 而只是遍历正在解包的字符串
for num in second:
...
您设置的循环是无限的。为了使用while循环,您需要修改它使用的条件,在本例中,设置的循环是无限的。为了使用while循环,您需要修改它使用的条件,在本例中,
len(second)
我有一个简单的工作条件
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)
per(2777777888899)
这是一个基本的手动编辑输入功能。该函数只是有一种输入,因为代码本身“不需要”一种更复杂且随时可用的方法,因为它是实时编辑的,如视频所示。实际计算过程发生在
steps += 1
digits = [int(i)for i in str(n)]
result = 1
for j in digits:
result *= j
不要依赖于代码的第一部分,因为实际的过程在第二部分
归功于NumberFile
录像带=====https://youtu.be/Wim9WJeDTHQ
频道===numberfile(在youtube上)我有一个简单的工作模式
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)
per(2777777888899)
这是一个基本的手动编辑输入功能。该函数只是有一种输入,因为代码本身“不需要”一种更复杂且随时可用的方法,因为它是实时编辑的,如视频所示。实际计算过程发生在
steps += 1
digits = [int(i)for i in str(n)]
result = 1
for j in digits:
result *= j
不要依赖于代码的第一部分,因为实际的过程在第二部分
归功于NumberFile
录像带=====https://youtu.be/Wim9WJeDTHQ
频道===numberfile(在youtube上)这是一个计算数字持久性的简单程序:
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)
这是一个计算数字持久性的简单程序:
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)
我应该包括这个,但它必须继续循环,直到最终结果有一个数字。如果任何数字是零,你知道答案将是零吗?我应该包括这个,但它必须继续循环,直到最终结果有一个数字。如果任何数字为零,你知道答案将为零吗?你似乎混淆了乘法和加法。乘法恒等式是1,而不是0。您似乎混淆了乘法和加法。乘法恒等式是1,而不是0。