2016-10-25 18 views
0

私は数値を取ろうとしていますが、0になるまで床の分割を行います。これは、ベースケースで再帰を使用して行う必要があります。たとえば :Python再帰関数

>>>Base(5,2) 
2 ##(5//2) 
1 ##(2//2) 
0 ##(1//2) 

これは私がこれまで持っているものです。

def Base(number,base): 
    result=1 
    if result==0: 
     return False 
    else: 
     result=number//base 
     return Base(result,base) 
+0

あなたの疑問をクリア願って偽

を印刷しました。結果は常に1に設定されており、宣言されていない「n」があります。 – idjaw

+0

@idjaw私はnを変更しました。申し訳ありませんが、そこに番号があります。 – Chris

+0

素晴らしい。今度はあなたの関数の始めに 'result = 1'を世話してください。 'result = 1'を設定し続けると何が起こっているのか考えてみてください。行ごとに実行します。 – idjaw

答えて

1

私は、これはあなたがすべて使用して結果の

def Base(number,base): 

     if number==0: 
      return False 
     else: 
      number = number//base 
      print(number) 
      return Base(number,base) 

まず探しているものだと思う= 1必要がありますすべての再帰呼び出し中に削除されるため、結果は1に再初期化され、次のif文は決して機能しません。あなたがする必要は何 は、それが0になるまで再帰的に数を分割し続けると私はそれはあなたは二つの問題を持っている