''' Returns number of pennies if pennies are doubled num_days times'''
def double_pennies(num_pennies, num_days):
total_pennies = 0
if num_days == 0:
return total_pennies
else:
total_pennies = double_pennies((num_pennies * 2), (num_days - 1));
return total_pennies
''' Program computes pennies if you have 1 penny today,'''
''' 2 pennies after one day, 4 after two days, and so on'''
starting_pennies = 1
user_days = 10
print('Number of pennies after', user_days, 'days: ', end="")
print(double_pennies(starting_pennies, user_days))
0
A
答えて
0
の出力を引き起こしている: -
total_pennies = num_pennies
if num_days == 0:
return total_pennies # or if you want return 0
elif (num_days == 1):
return total_pennies * 2
else:
total_pennies = double_pennies((num_pennies * 2), (num_days - 1));
return total_pennies
そのベースケースが何を意味するかを理解することが有益。基本ケースは、再考が終了する必要がある条件が1つしかないことを意味しません。代わりに、それは再発が終結するべきときの可能な条件の1つであることを意味します。
これで、問題に2つの基本ケースがあることがわかります。
- 0日が経過している場合は1日が経過したとき、あなたは、あなたが二重入力のお金をお金
- を持っていませんでした。
- 日数が過ぎると、前日の2倍の金額になります。
上記の3つのケースをコードするには、if-elif -elseが必要です。
0
あなたの基本ケースは正しくありません。あなたはゼロ日後にゼロのペニーを持っていない - あなたはあなたが始めたものを正確に持っています。
- 1ペニーで始まります。ダブル3回。あなたは1 * 2 * 2 * 2 = 8ペニーです。
- 1ペニーで始まります。ダブル2回あなたは1 * 2 * 2 = 4ペニーです。
- 1ペニーで始まります。ダブル1回。あなたは1 * 2 = 2ペニーです。
- 1ペニーで始まります。ダブル0回。 1ペニーがあります。
あなたのベースケースは本当に、単に
if num_days == 0:
return num_pennies
全く0にtotal_pennies
を初期化するか、する必要はありませんする必要があります。
関連する問題
- 1. Python:再帰関数の基本ケース
- 2. ここでこの再帰関数の基本ケースは何ですか?どのように実際に働いていますか?
- 3. どのように再帰関数を管理するには?
- 4. Rubyマージソート - この再帰関数はどのように機能しますか?
- 5. このocaml再帰関数はどのように機能しますか?
- 6. 再帰関数(私は再帰的にこの非再帰的なメソッドを書くことができますどのように)
- 7. Delphi 2009コンパイラは再帰インラインメソッドをどのように処理しますか?
- 8. は、どのように関数がF#で末尾再帰は
- 9. 再帰関数の基本ケースはいくつありますか?
- 10. 再帰関数からベースケースのリターンを抽出するには?
- 11. この再帰関数はどのように真を返すことができますか?
- 12. サブクラスのコンストラクタで追加のケースを処理するにはどうすればよいですか?
- 13. どのようにこの再帰関数をトレースするには?
- 14. どのようにベクトルを返す関数再帰でベクトルを追加できますか?
- 15. (C++)再帰関数は - これは私がちょうど再帰関数で始まるよ
- 16. 複数は私のような加入行うことができますどのようにZend_Db_Selectの
- 17. どのように私はあなたがこのようにそれを行うことができます
- 18. どのようにこの再帰的なオーバーフローを解決できますか?
- 19. どのように私はmatlabでネストされた再帰関数を書くことができます
- 20. JavaScriptの関数の引数にどのように追加できますか?
- 21. どのように私は私のナオ/ペッパーアプリにカスタムダイアログで、基本的なチャンネルを追加する
- 22. このクラスエラーはどのように処理されますか?
- 23. このGitエラーはどのように処理しますか?
- 24. このNULLデータはどのように処理しますか?
- 25. このリストはどのように処理されますか?
- 26. Pythonの、基本的な質問:どのように私はurllib.request.urlretrieve
- 27. RESTはこの処理をどのように処理しますか?
- 28. ソケットはどのようにアービトレーションを処理できますか?
- 29. 私はこのような基本データをしたGoogleスプレッドシートで
- 30. 再帰型定義はジェネリックを処理できないようですか?
1ペニーがあり、それを0倍にした場合、ペニーの数はいくつですか? – trentcl
@trentcl、もし私が1ペニーを持っていて、それを2倍にすると結果はゼロペニーになります。 – Umubale
アルゴリズムが正しいです。しかし、ゼロがあなたが望む結果でない場合、あなたはその質問を少し難しく思っているかもしれません。 – trentcl