おそらくコードネームの "永続的なバグ"タスクを解決しようとする人がいるかもしれません。だからここ は私の番です:)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回以上です。これに対処する方法は?どのようにしてカウンタを作成できますか?この時点でこの関数を再帰的に使用しますか?あなたが状態を管理する必要がある場合は、再帰で
私はあなたが関数がやっているしているかわからないんだけど、私はあなたがマルチ( '永続性を返すようにしたいとしている推測しています) 'を呼び出すのではなく、また、カウントを維持する必要がある場合は、グローバルを呼び出すのではなく、2番目の引数として渡すことができます。 'def persistence(num、count):' – Hoopdady
私はその「仕事」に精通していないので、達成しようとしていることを教えてください。 – wheaties
ここでは質問です:肯定的なパラメータnumを取り、その乗法的な持続性を返す関数、永続性を書く。これは、数字の1桁に達するまでnumの桁数を掛けなければならない回数です。 'persistence(39)=> 3'、' persistence(25)=> 2'です。だから私は 'カウント'を返すべきです。私の場合、私はグローバル変数を使用します。それでカウンターが常に増え、ちょうど2ではなく2番目に5(3 + 2)が出ます。 – ascentman