質問するログイン新規登録

回答編集履歴

4

表現の変更

2017/09/17 12:12

投稿

退会済みユーザー
answer CHANGED
@@ -40,7 +40,7 @@
40
40
 
41
41
  こうしてみると、結構違っている事が分かり、面白いと思います。
42
42
 
43
- ちなみに、LouiS0616 さんの回答は「関数には 1 つのことしかやらせない!」、YouheiSakurai さんの隠れコンセプトは「yield 使ってみたかった」だと思われます。
43
+ ちなみに、LouiS0616 さんの回答は「関数には 1 つのことしかやらせない!」、YouheiSakurai さんの隠れコンセプトは「yield 使ってみたかった^^」だと思われます。
44
44
 
45
45
  プログラムって入力と出力を紐付けるものですが、人によって色々書けるので、メッセージを読み取ると興味を持って読み取ることができ、学習がすすむと思います。
46
46
 

3

追記

2017/09/17 12:12

投稿

退会済みユーザー
answer CHANGED
@@ -6,4 +6,42 @@
6
6
  `year % 100 != 0 or year % 400 == 0`
7
7
  で満たされます。
8
8
 
9
- 宿題、がんばってw
9
+ 宿題、がんばってw
10
+
11
+ **追記**
12
+ 幾つか回答がついていて、ちょうどよいので追記します。
13
+ まず、私の回答のサンプルコードですが、以下となります。
14
+ ```python
15
+ def leapyear(year):
16
+ print('start:',year)
17
+ n = 1
18
+ while year % 4 != 0 :
19
+ year += 1
20
+ while n <= 20 :
21
+ if year % 100 != 0 or year % 400 == 0:
22
+ print(n,year)
23
+ n += 1
24
+ year += 4
25
+ leapyear(1990)
26
+ ```
27
+ 最初の`while`で4で割り切れるまで`year`を増やし、2番目の`while`で20個表示します。
28
+ Python は始めて2ヶ月なので、ちょっと書き方が Python っぽくないかもしれませんw
29
+
30
+ で、追記の本題ですが、うるう年ってコンピュータで扱える条件が独立して 2 つあるんです。
31
+
32
+ 1,4で割り切れればうるう年、だけど100で割り切れるときは飛ばす。ただし400で割り切れれば、うるう年!
33
+ 2,2月29日がある。
34
+
35
+ 私のアプローチは 1 で、YouheiSakurai さんのが 2 ですね。
36
+ これは、作り出される結果に対しての考え方の違いでもあります。
37
+
38
+ 1,法則に従って、うるう年を**作り出す**
39
+ 2,順次、年を検証して、条件合致したものを**抽出する**
40
+
41
+ こうしてみると、結構違っている事が分かり、面白いと思います。
42
+
43
+ ちなみに、LouiS0616 さんの回答は「関数には 1 つのことしかやらせない!」、YouheiSakurai さんの隠れコンセプトは「yield 使ってみたかったw」だと思われます。
44
+
45
+ プログラムって入力と出力を紐付けるものですが、人によって色々書けるので、メッセージを読み取ると興味を持って読み取ることができ、学習がすすむと思います。
46
+
47
+ がんばってくださいね^^

2

修正

2017/09/07 00:43

投稿

退会済みユーザー
answer CHANGED
@@ -1,7 +1,7 @@
1
1
  全体的におかしいですね。
2
2
  while で回すなら、n を条件にすると良いです。
3
3
 
4
- また、year を 1 づつ足していますが、4 で割れるまで足したら、あとは 4 づつ足すと効率的です。
4
+ また、year を 1 づつ足そうとしていますが、4 で割れるまで足したら、あとは 4 づつ足すと効率的です。
5
5
  それと、上記を使えば、うるう年の条件は
6
6
  `year % 100 != 0 or year % 400 == 0`
7
7
  で満たされます。

1

修正

2017/09/06 10:45

投稿

退会済みユーザー
answer CHANGED
@@ -1,7 +1,7 @@
1
1
  全体的におかしいですね。
2
2
  while で回すなら、n を条件にすると良いです。
3
3
 
4
- また、n を 1 づつ足していますが、4 で割れるまで足したら、あとは 4 づつ足すと効率的です。
4
+ また、year を 1 づつ足していますが、4 で割れるまで足したら、あとは 4 づつ足すと効率的です。
5
5
  それと、上記を使えば、うるう年の条件は
6
6
  `year % 100 != 0 or year % 400 == 0`
7
7
  で満たされます。