このコンテンツには閲覧パスワードが必要です。
増井 敏克著「Pythonではじめるアルゴリズム入門 伝統的なアルゴリズムで学ぶ定石と計算量」で勉強しています。
もう半年も前になりますが、2章を終えたので理解度チェックの問題を解いていきます。
Google Colaboratoryでやってます。
問題1
1950年から2050年までの間にある「うるう年」を出力するプログラムを作成してください。なお、うるう年は次の条件で判定できます。
- 4で割り切れる年はうるう年
- ただし、100で割り切れて400で割り切れない年はうるう年ではない(例えば2019は4で割り切れないため、うるう年ではない。2020は4で割り切れ、100では割り切れて400で割り切れるのでうるう年。)
for i in range(1950,2050):
if i % 4 == 0:
if i % 100 == 0 and i % 400 != 0:
pass
else:
print(str(i) + "年はうるう年です")
問題2
西暦の年が引数で与えられたとき、元号に変換して出力する関数を作成してください。
与えられる西暦の年は1869以上2020以下に対応するものとします。
なお、昭和64年平成1年、平成31年令和1年のように、同じ年に複数の元号が考えられる場合は、後の元号で出力するものとします。例えば、2000が引数で与えられたとき、出力は「平成12年」となります。
def gengou(year):
if year < 1868:
return ""
elif year < 1912:
return "明治" + str(year-1867) + "年"
elif year < 1926:
return "大正" + str(year-1911) + "年"
elif year < 1989:
return "昭和" + str(year-1925) + "年"
elif year < 2019:
return "平成" + str(year-1988) + "年"
else:
return "令和" + str(year-2018) + "年"
print(gengou(1868))