回答編集履歴

3

誤記訂正

2018/09/05 09:02

投稿

opyon
opyon

スコア1009

test CHANGED
@@ -52,6 +52,4 @@
52
52
 
53
53
  }
54
54
 
55
- }
56
-
57
55
  ```

2

より簡潔に書き直し。

2018/09/05 09:02

投稿

opyon
opyon

スコア1009

test CHANGED
@@ -1,5 +1,3 @@
1
- 追記の解答
2
-
3
1
  outpu2
4
2
 
5
3
  for文2回で実装の条件を満たしていなかったので書き直しました。
@@ -12,59 +10,11 @@
12
10
 
13
11
 
14
12
 
15
-
16
-
17
- 以下最初の解答
18
-
19
- output
20
-
21
- 規則性を見つければfor文だけで簡潔に書けます。
22
-
23
- 例えばn=3行の場合ゼロの数は上から1,3,5で、空白の数は上から4,2,0です。
24
-
25
- それぞれ足すと上から1+4=5,3+2=5,5+0=5となります。
26
-
27
- この規則性になるようにiループを逆順に回しながらゼロの個数を左右の空白で挟むように出力させます。
28
-
29
-
30
-
31
13
  ```java
32
-
33
- public class memo_qa144817 {
34
-
35
-
36
-
37
- // 0
38
-
39
- // 000
40
-
41
- // 00000
42
-
43
- // 01234
44
-
45
-
46
-
47
- //n=3
48
-
49
- //ループi
50
-
51
- //2
52
-
53
- //1
54
-
55
- //0
56
-
57
-
58
14
 
59
15
  public static void main(String[] args) {
60
16
 
61
-
62
-
63
17
  output2(3);
64
-
65
- output(3);
66
-
67
-
68
18
 
69
19
  }
70
20
 
@@ -88,9 +38,7 @@
88
38
 
89
39
  System.out.print(" ");
90
40
 
91
- }
41
+ }else {
92
-
93
- if(j>=cent-zero/2 && j<=cent+zero/2) {
94
42
 
95
43
  System.out.print("0");
96
44
 
@@ -104,46 +52,6 @@
104
52
 
105
53
  }
106
54
 
107
-
108
-
109
- private static void output(int n) {
110
-
111
- for(int i = n-1;i>=0;i--) {
112
-
113
-
114
-
115
- for(int j = 0;j<i;j++) {
116
-
117
- System.out.print(" ");
118
-
119
- }
120
-
121
-
122
-
123
- int zero = n*2-1-2*i;
124
-
125
-
126
-
127
- for(int j = 0;j<zero;j++) {
128
-
129
- System.out.print("0");
130
-
131
- }
132
-
133
-
134
-
135
- for(int j = 0;j<i;j++) {
136
-
137
- System.out.print(" ");
138
-
139
- }
140
-
141
- System.out.println();
142
-
143
- }
144
-
145
- }
146
-
147
55
  }
148
56
 
149
57
  ```

1

for文2回の条件を満たす解答を追記

2018/09/05 08:56

投稿

opyon
opyon

スコア1009

test CHANGED
@@ -1,3 +1,23 @@
1
+ 追記の解答
2
+
3
+ outpu2
4
+
5
+ for文2回で実装の条件を満たしていなかったので書き直しました。
6
+
7
+ これも規則性を見つければ簡潔に書けました。
8
+
9
+ 中心が必ずn-1番目(0スタート)となります。
10
+
11
+ if文で中心からの左右の位置で空白か0かを判定して出力させます。
12
+
13
+
14
+
15
+
16
+
17
+ 以下最初の解答
18
+
19
+ output
20
+
1
21
  規則性を見つければfor文だけで簡潔に書けます。
2
22
 
3
23
  例えばn=3行の場合ゼロの数は上から1,3,5で、空白の数は上から4,2,0です。
@@ -14,11 +34,13 @@
14
34
 
15
35
 
16
36
 
17
- // 0
37
+ // 0
18
38
 
19
- // 000
39
+ // 000
20
40
 
21
- //00000
41
+ // 00000
42
+
43
+ // 01234
22
44
 
23
45
 
24
46
 
@@ -38,9 +60,47 @@
38
60
 
39
61
 
40
62
 
63
+ output2(3);
64
+
41
65
  output(3);
42
66
 
43
67
 
68
+
69
+ }
70
+
71
+ private static void output2(int n) {
72
+
73
+ for(int i = n-1;i>=0;i--) {
74
+
75
+
76
+
77
+ int zero = n*2-1-2*i;
78
+
79
+ int cent = n-1;
80
+
81
+
82
+
83
+ for(int j = 0;j<n*2-1;j++) {
84
+
85
+
86
+
87
+ if(j<cent-zero/2 || j>cent+zero/2) {
88
+
89
+ System.out.print(" ");
90
+
91
+ }
92
+
93
+ if(j>=cent-zero/2 && j<=cent+zero/2) {
94
+
95
+ System.out.print("0");
96
+
97
+ }
98
+
99
+ }
100
+
101
+ System.out.println();
102
+
103
+ }
44
104
 
45
105
  }
46
106