回答編集履歴

3

修正

2020/08/26 09:38

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -15,6 +15,48 @@
15
15
  ```
16
16
 
17
17
  エラー: C2177: 定数が大きすぎます。
18
+
19
+ ```
20
+
21
+
22
+
23
+ 型が表せる値の範囲は numeric_limits で確認できます。
24
+
25
+
26
+
27
+ [numeric_limits - cpprefjp C++日本語リファレンス](https://cpprefjp.github.io/reference/limits/numeric_limits.html)
28
+
29
+
30
+
31
+ ```cpp
32
+
33
+ #include <iostream>
34
+
35
+ #include <limits>
36
+
37
+
38
+
39
+ int main()
40
+
41
+ {
42
+
43
+ std::cout << "long long" << std::endl;
44
+
45
+ std::cout << "min " << std::numeric_limits<long long>::min() << std::endl;
46
+
47
+ std::cout << "max " << std::numeric_limits<long long>::max() << std::endl;
48
+
49
+
50
+
51
+ //long long
52
+
53
+ //min -9223372036854775808
54
+
55
+ //max 9223372036854775807
56
+
57
+ }
58
+
59
+
18
60
 
19
61
  ```
20
62
 

2

修正

2020/08/26 09:38

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -17,3 +17,59 @@
17
17
  エラー: C2177: 定数が大きすぎます。
18
18
 
19
19
  ```
20
+
21
+
22
+
23
+ ## サンプルコード
24
+
25
+
26
+
27
+ 以下で AC しました。
28
+
29
+
30
+
31
+ ```cpp
32
+
33
+ #include <iostream>
34
+
35
+ #include <string>
36
+
37
+
38
+
39
+ using namespace std;
40
+
41
+
42
+
43
+ int main()
44
+
45
+ {
46
+
47
+ std::string input;
48
+
49
+ cin >> input;
50
+
51
+
52
+
53
+ // 文字列を1文字ずつ読み込んで、int に変換して加算する。
54
+
55
+ int sum = 0;
56
+
57
+ for (auto c : input)
58
+
59
+ sum += c - '0'; // char -> int
60
+
61
+
62
+
63
+ if (sum % 9 == 0)
64
+
65
+ cout << "Yes" << endl;
66
+
67
+ else
68
+
69
+ cout << "No" << endl;
70
+
71
+ }
72
+
73
+
74
+
75
+ ```

1

修正

2020/08/26 09:35

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -5,3 +5,15 @@
5
5
  `long long` ではオーバーフローしていませんか?
6
6
 
7
7
  文字列から1文字ずつ取り出して、数値にして加算していけばいい気がします。
8
+
9
+
10
+
11
+ Visual C++ だとエラーで教えてくれました。
12
+
13
+
14
+
15
+ ```
16
+
17
+ エラー: C2177: 定数が大きすぎます。
18
+
19
+ ```