Python 練習例28
問題:5人が座っています。5人目の年齢を聞くと、4人目より2歳年上だと言いました。4人目の年齢を聞くと、3人目より2歳年上だと言いました。3人目に聞くと、2人目より2歳年上だと言いました。2人目に聞くと、1人目より2歳年上だと言いました。最後に1人目に聞くと、10歳だと言いました。では、5人目は何歳ですか?
プログラム分析:再帰の方法を利用します。再帰は順方向の推論(递推)と逆方向の推論(回推)の2つの段階に分けられます。5人目の年齢を知るには、4人目の年齢を知る必要があり、順に類推して1人目(10歳)まで遡り、そこから逆算します。
プログラムソースコード:
例
#!/usr/bin/python
# -*- coding: UTF-8 -*-
def age(n):
if n == 1: c = 10
else: c = age(n - 1) + 2
return c
print (age(5))
上記の例の出力結果は次の通りです:
18その他の拡張