回答編集履歴

2

追記

2017/09/06 15:35

投稿

LouiS0616
LouiS0616

スコア35658

test CHANGED
@@ -37,3 +37,71 @@
37
37
  - **エラーの内容が書かれていない**
38
38
 
39
39
  - **仕様が曖昧、実行例がない**
40
+
41
+
42
+
43
+ ---
44
+
45
+ 動作するプログラムが完成したようなので追記。こんな風に書くかなぁ。
46
+
47
+ `is_leap_year`のネストを浅くするために、比較回数を犠牲にしています。
48
+
49
+ ```Python
50
+
51
+ def is_multiple(div, base):
52
+
53
+ return div % base == 0
54
+
55
+
56
+
57
+ def is_leap_year(year):
58
+
59
+ if is_multiple(year, 400):
60
+
61
+ return True
62
+
63
+ if is_multiple(year, 100):
64
+
65
+ return False
66
+
67
+ if is_multiple(year, 4):
68
+
69
+ return True
70
+
71
+ return False
72
+
73
+
74
+
75
+ def main():
76
+
77
+ year = int(input('>> '))
78
+
79
+ while year % 4 != 0:
80
+
81
+ year += 1
82
+
83
+
84
+
85
+ num_of_leap_year = 0
86
+
87
+ while num_of_leap_year < 20:
88
+
89
+ if is_leap_year(year):
90
+
91
+ print(year)
92
+
93
+ num_of_leap_year += 1
94
+
95
+ year += 4
96
+
97
+
98
+
99
+ if __name__ == '__main__':
100
+
101
+ main()
102
+
103
+ ```
104
+
105
+
106
+
107
+ テストはろくにしてないので、変な部分があるかもしれません。

1

修正

2017/09/06 15:35

投稿

LouiS0616
LouiS0616

スコア35658

test CHANGED
@@ -32,8 +32,6 @@
32
32
 
33
33
  最低限の文法はしっかり勉強しましょう。また、正しい質問が出来るようにしましょう。
34
34
 
35
- - **Pythonのバージョンを書いていない** (3だろうけど)
36
-
37
35
  - **コードブロックを用いていない**
38
36
 
39
37
  - **エラーの内容が書かれていない**