目次
問題
次のコードを実行した時の出力として正しいものは A 〜 D のどれでしょうか?
解答
正解は。。。
正解は A の
16
です。
解説
自分自身を呼び出す再帰関数の問題です。
foo()
は簡単な再帰関数なので、順番に追っていけば悩むことは無いでしょう。
出力するのはfoo(7)
です。
7
は0
より大きいので、foo(7)
は7 + foo(5)
を返します。
5
は0
より大きいので、foo(5)
は5 + foo(3)
を返します。
3
は0
より大きいので、foo(3)
は3 + foo(1)
を返します。
1
は0
より大きいので、foo(1)
は1 + foo(-1)
を返します。
-1
は0
以下なので、foo(-1)
は0
を返します。
よって、foo(7)
→ 7 + foo(5)
→7 + 5 + foo(3)
→7 + 5 + 3 + foo(1)
→7 + 5 + 3 + 1 + foo(-1)
→7 + 5 + 3 + 1 + 0
となり、出力は16
になります。
Google Colaboratory
下記リンクからアクセスして、Google Colaboratory 上で実際にコードを実行して、結果を確認していただけます。
おわりに
X で Python クイズを配信しています。
#Pythonクイズ
— Taklog (@taklog_info) September 29, 2023
No.12
次のコードを実行した時の出力として正しいものは A 〜 D のどれでしょうか? #Python #pythonprogramming pic.twitter.com/jOX7RxY8to
よかったらフォローしてください!
以上です。
コメント