回答編集履歴

1

range(n) の意味を誤解しているという説明を追加

2019/06/12 02:12

投稿

kazuma-s
kazuma-s

スコア8224

test CHANGED
@@ -25,3 +25,45 @@
25
25
  print(' ' * (n-i+1) + '*' * (2*i-1))
26
26
 
27
27
  ```
28
+
29
+ [追記]
30
+
31
+ n = 6 のとき、range(n) は、[1,2,3,4,5,6] ではなく、[0,1,2,3,4,5] です。
32
+
33
+ i = 0 のとき、n-i+1 = 7、2*i-1 = -1 となるので、表示は、
34
+
35
+ ```
36
+
37
+
38
+
39
+ *
40
+
41
+ ***
42
+
43
+ *****
44
+
45
+ *******
46
+
47
+ *********
48
+
49
+ ```
50
+
51
+ n = 6 のとき、本当は次のように表示したいのではありませんか?
52
+
53
+ ```
54
+
55
+ *
56
+
57
+ ***
58
+
59
+ *****
60
+
61
+ *******
62
+
63
+ *********
64
+
65
+ ***********
66
+
67
+ ```
68
+
69
+ それなら、n-i+1 の代わりに n-i-1、2*i-1 の代わりに 2*i+1 でしょう。