回答編集履歴
1
判明した仕様に基づいて修正
answer
CHANGED
@@ -2,17 +2,25 @@
|
|
2
2
|
|
3
3
|
- 入力した数値の桁を逆にするのではなく、**文字列を逆順に並べる**と考えれば、`StringBuilder.reverse`が使える
|
4
4
|
- 回分数の判定も、数値を文字列にして、それを逆順に並べた文字列と一致するかどうか、で行なえる
|
5
|
+
- 回分数でなかったら、Nに足した結果を設定し、新たなMを計算する
|
5
6
|
|
6
7
|
```Java
|
7
8
|
public static void main(String[] args) throws Exception {
|
8
9
|
var br = new BufferedReader(new InputStreamReader(System.in));
|
9
10
|
var N = Integer.parseInt(br.readLine());
|
11
|
+
while (true) {
|
10
|
-
|
12
|
+
var M = Integer.parseInt(new StringBuilder(String.valueOf(N)).reverse().toString());
|
11
|
-
|
13
|
+
System.out.printf("N=%d\nM=%d\n", N, M);
|
12
14
|
|
13
|
-
|
15
|
+
var A = N + M;
|
14
|
-
|
16
|
+
System.out.printf("N + M = %d\n", A);
|
15
|
-
|
17
|
+
var B = Integer.parseInt(new StringBuilder(String.valueOf(A)).reverse().toString());
|
18
|
+
if (A == B) {
|
19
|
+
break;
|
20
|
+
}
|
16
|
-
|
21
|
+
System.out.println("NG");
|
22
|
+
N = A;
|
23
|
+
}
|
24
|
+
System.out.println("OK");
|
17
25
|
}
|
18
26
|
```
|