回答編集履歴

3

修正

2020/08/26 14:47

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -9,3 +9,21 @@
9
9
  + ((s.at(0)-'0')*100 + (s.at(1)-'0')*10 + s.at(2)-'0')
10
10
 
11
11
  ```
12
+
13
+
14
+
15
+ ----
16
+
17
+
18
+
19
+ 以下を見れば、なぜそうなったかわかるかと思います。
20
+
21
+
22
+
23
+ ```
24
+
25
+ cout << abs(100 + 20 + 3 - 753) << endl;
26
+
27
+ cout << abs(753 - 100 + 20 + 3) << endl;
28
+
29
+ ```

2

修正

2020/08/26 14:47

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -1,11 +1,11 @@
1
- `s.at(2) - '0'` の括弧がないから、計算順序が変わっています。
1
+ `(s.at(0)-'0')*100 + (s.at(1)-'0')*10 + s.at(2)-'0'` の括弧がないから、計算順序が変わっています。
2
2
 
3
3
 
4
4
 
5
5
  ```diff
6
6
 
7
- - s.at(2) - '0'
7
+ - (s.at(0)-'0')*100 + (s.at(1)-'0')*10 + s.at(2)-'0'
8
8
 
9
- + (s.at(2) - '0')
9
+ + ((s.at(0)-'0')*100 + (s.at(1)-'0')*10 + s.at(2)-'0')
10
10
 
11
11
  ```

1

修正

2020/08/26 14:46

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -1 +1,11 @@
1
1
  `s.at(2) - '0'` の括弧がないから、計算順序が変わっています。
2
+
3
+
4
+
5
+ ```diff
6
+
7
+ - s.at(2) - '0'
8
+
9
+ + (s.at(2) - '0')
10
+
11
+ ```