回答編集履歴

1

サンプルプログラムの不具合修正

2016/04/28 05:58

投稿

HiroshiWatanabe
HiroshiWatanabe

スコア2160

test CHANGED
@@ -1,26 +1,24 @@
1
1
  ```c
2
2
 
3
3
  #include <stdio.h>
4
+
5
+ #include <limits.h>
4
6
 
5
7
 
6
8
 
7
9
  int main() {
8
10
 
9
- int k = 1;
11
+ unsigned long long k = 1;
10
12
 
11
13
  int i = 0;
12
14
 
13
- int o;
14
-
15
15
  do {
16
16
 
17
- o = k;// オーバーフロー判定用に掛ける前の値を保持しておく
17
+ printf("%d!=%d\n", (int)i, (int)k);
18
18
 
19
- printf("%d!=%d\n", i, k);
19
+ k *= ++i;
20
20
 
21
- k *= ++i;// 前回の計算結果に前回掛けた数+1を順番に掛けていく
22
-
23
- } while (o <= k);// 掛けたのに小さくなっている=オーバーフロー=intの限界を超えた..ら終了
21
+ } while (k <= INT_MAX);
24
22
 
25
23
  return 0;
26
24
 
@@ -29,3 +27,5 @@
29
27
 
30
28
 
31
29
  ```
30
+
31
+