也许你们中的一些人已经尝试解决codewars上的“持续性bugger”任务。 因此,这里是轮到我了:)python:递归函数计数器。持久性问题
def persistence(num):
multi = 1
while num:
multi *= num % 10
num /= 10
global count
count += 1
if(multi >= 10):
persistence(multi)
else:
return 0
return count
count = 0
print(persistence(39))
#print(persistence(25))
它给了我正确的迭代结果和1次尝试的成功的结果。 (persistence(39) => 3 # Because 3*9 = 27, 2*7 = 14, 1*4=4)
但由于使用全局变量,我无法运行它超过1次。如何处理这个?我怎样才能创建计数器,并在这个时候递归地使用这个函数?
我不知道你在做什么功能是干什么的,但我猜你会想'返回的持久性(多)'而不是仅仅调用它。此外,如果您需要维护计数,则可以将其作为第二个参数传递,而不是调用全局。 'def persistence(num,count):' – Hoopdady
既然我不熟悉那个“任务”,你能告诉我们你想完成什么吗? – wheaties
这是一个问题:编写一个函数,持久性,它接受一个正参数num并返回它的乘法持久性,这是你必须在num中乘以数字的次数,直到达到一个数字。 “持久性(39)=> 3”,“持久性(25)=> 2”。所以我应该返回'count'。在我的情况下,我使用全局变量。这就是为什么计数器总是增加,我得到第二次运行5(3 + 2)而不是2。 – ascentman