68476


コードの初心者です。

Fibonacci Sequence を表すプログラムを書いて見ましたが、最初の４６項は正しいですが、どうしてか47項になると数字は正しくなくなる。

[![画像の説明をここに入力](https://i.stack.imgur.com/fa7YH.png)](https://i.stack.imgur.com/fa7YH.png)

僕のコード

[![画像の説明をここに入力](https://i.stack.imgur.com/yPOBk.png)](https://i.stack.imgur.com/yPOBk.png)

47項になると値は０より低くなる。  
原因はわかりません、僕は何が間違ってるのでしょうか？


CC BY-SA 4.0
2020-07-10T13:48:18.640
68474
2020-07-10T14:35:11.617
41041
question
c
僕のプログラムは何が問題があります。（Fibonacci Sequence)


47番目の数値が`int`であらわせる最大値を超えたのでオーバーフローして無効な数値になったためです。

そこまでで止めるか、もっと大きい値を扱える(コンパイラや環境に依存しますが)`long`や`long long`に変えるといった対処が考えられます。

[整数型（char型 int型）の最大値と最小値 - limits.h](https://webkaru.net/clang/limits-header/)

> int の最大値 = 2147483647  
>  long の最大値 = 9223372036854775807

[色々なデータ型の最大値、最小値](http://www1.cts.ne.jp/%7Eclab/hsample/IO/IO19.html)

> int の最大値: 32767  
>  long の最大値: 2147483647

[C と C++ 整数の制限](https://docs.microsoft.com/ja-jp/cpp/c-language/cpp-integer-
limits?view=vs-2019)

> INT_MAX int 型変数の最大値。 2147483647  
>  LONG_MAX long 型変数の最大値。 2147483647  
>  LLONG_MAX long long 型変数の最大値。 9,223,372,036,854,775,807

[１００番目までのフィボナッチ数列](http://www.suguru.jp/Fibonacci/Fib100.html)

> 47 2971215073


CC BY-SA 4.0
2020-07-10T14:35:11.617
68476
2020-07-10T14:35:11.617
26370
68474
answer