回答編集履歴

3

修正

2020/09/08 12:33

投稿

amiya
amiya

スコア1218

test CHANGED
@@ -1,3 +1,39 @@
1
+ momon-gaさんのコメントを元に、3桁制限と0+0の時に例外的に"0"を出す処理を追加。
2
+
3
+
4
+
5
+ ```Java
6
+
7
+ int num1 = sc.nextInt();
8
+
9
+ int num2 = sc.nextInt();
10
+
11
+
12
+
13
+ String ret = "";
14
+
15
+ for(; (num1+num2)>0 && ret.length()<3; num1/=10,num2/=10){
16
+
17
+ ret = (num1 % 10 + num2 % 10) % 10 + ret;
18
+
19
+ }
20
+
21
+ ret = ret.length()==0?"0":ret;
22
+
23
+
24
+
25
+ System.out.print(ret);
26
+
27
+ ```
28
+
29
+
30
+
31
+ ---
32
+
33
+ 以下はおまけ
34
+
35
+
36
+
1
37
  ```Java
2
38
 
3
39
  int num1 = sc.nextInt();
@@ -12,7 +48,7 @@
12
48
 
13
49
  for(int i=1; (num1+num2)>0; i*=10,num1/=10,num2/=10,len++){
14
50
 
15
- num3 += (num1 % 10 + num2 % 10) % 10 * i;
51
+ num3 += (num1 % 10 + num2 % 10) % 10 * i;
16
52
 
17
53
  }
18
54
 
@@ -58,7 +94,7 @@
58
94
 
59
95
  for(int i=1; (num1+num2)>0; i*=10,num1/=10,num2/=10,len++){
60
96
 
61
- num3 += (num1 % 10 + num2 % 10) % 10 * i;
97
+ num3 += (num1 % 10 + num2 % 10) % 10 * i;
62
98
 
63
99
  }
64
100
 

2

修正

2020/09/08 12:33

投稿

amiya
amiya

スコア1218

test CHANGED
@@ -10,13 +10,9 @@
10
10
 
11
11
 
12
12
 
13
- for(int i=1; (num1+num2)>0; i*=10,num1/=10,num2/=10){
13
+ for(int i=1; (num1+num2)>0; i*=10,num1/=10,num2/=10,len++){
14
14
 
15
- int n = num1 % 10 + num2 % 10;
15
+ num3 += (num1 % 10 + num2 % 10) % 10 * i;
16
-
17
- len += n>0?1:0;
18
-
19
- num3 += n % 10 * i;
20
16
 
21
17
  }
22
18
 
@@ -24,7 +20,7 @@
24
20
 
25
21
  len = len==0?1:len;
26
22
 
27
- len = len>4?3:len;
23
+ len = len>3?3:len;
28
24
 
29
25
 
30
26
 
@@ -35,3 +31,41 @@
35
31
 
36
32
 
37
33
  とりあえず、こんなんで。結果はちゃんとあってるはず。
34
+
35
+ ミスがあったので修正。
36
+
37
+
38
+
39
+ 下のだと、4桁以上にも対応(というより上の3桁制限を外しただけ)
40
+
41
+ どちらもちゃんと入力桁数に応じて頭の0もちゃんとつくはずです。
42
+
43
+ (9+1→0、90+10→00、998+100→098)
44
+
45
+
46
+
47
+ ```Java
48
+
49
+ int num1 = sc.nextInt();
50
+
51
+ int num2 = sc.nextInt();
52
+
53
+ int num3 = 0;
54
+
55
+ int len = 0;
56
+
57
+
58
+
59
+ for(int i=1; (num1+num2)>0; i*=10,num1/=10,num2/=10,len++){
60
+
61
+ num3 += (num1 % 10 + num2 % 10) % 10 * i;
62
+
63
+ }
64
+
65
+ len = len==0?1:len;
66
+
67
+
68
+
69
+ System.out.printf("%0"+len+"d",num3);
70
+
71
+ ```

1

修正

2020/09/08 10:24

投稿

amiya
amiya

スコア1218

test CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
 
12
12
 
13
- for(int i=1; num1>0 || num2>0; i*=10,num1/=10,num2/=10){
13
+ for(int i=1; (num1+num2)>0; i*=10,num1/=10,num2/=10){
14
14
 
15
15
  int n = num1 % 10 + num2 % 10;
16
16