
No.3ベストアンサー
- 回答日時:
フィボナッチ数列とは、
最初に「1、1」があって、次の数は「前の2つを足し算」です。
「1、1、2」になったら「1と2」で「3」、
「1、1、2、3」になったら「2と3」で「5」、
「1、1、2、3、5」になったら「3と5」で「8」。
これを40番目まで繰り返すだけです。
#include <stdio.h>
#include <stdlib.h>
main()
{
unsigned long a,b,c;
int n;
a=0L;
b=1L;
for (n=1;n<=40;n++) {
printf("%d:%ld\n",n,b);
c = a + b;
a = b;
b = c;
}
}
No.4
- 回答日時:
補足。
ANo.3のCプログラムは
「追加でf(0)=0を定義し、1番目から順に40番目まで繰り返し」
と言う姑息な手を使ってます。
0番目は「0」
1番目は「1」
と定義しておいても
2番目は0番目と1番目の足し算で「1」
3番目は1番目と2番目の足し算で「2」
が成り立ち、結局は、問題文に定義された
1番目は「1」
2番目は「1」
3番目は1番目と2番目の足し算で「2」
が成り立つのは変わりません。
なので、「a=0L」が『0番目は「0」』を、「b=1L」が『1番目は「1」』を意味します。
なお、フィボナッチ数列が40番目まで行くと16ビットintでは足りなくなるので、32ビットintで計算し、表示も「%ld」(unsignedなのでホントは「%lu」と書くべきなんだけど)を使います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DWORDの実際の型は何でしょうか
-
構造体の要素すべてに対する四...
-
main.c:7:43: warning: implici...
-
long型の定数の末尾にLを付ける...
-
2重定義って??
-
C言語のコンパイルエラー
-
visualstudio C# テキストボッ...
-
【C++クラス設計】ある関数の引...
-
LNK2019: 未解決の外部シンボル...
-
enumについて
-
typedef enumの使い方を教えて...
-
VC6でlong longでエラー?
-
APIENTRY と WINAPI
-
【#define】 defineで定義した...
-
クラスのメンバ関数を別ファイ...
-
inline
-
DLLでLIBファイルが作成されない
-
呼び出し時のパラメータが足りない
-
引数で argc argvが使用され...
-
sshdログの意味
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DWORDの実際の型は何でしょうか
-
visualstudio C# テキストボッ...
-
long型の定数の末尾にLを付ける...
-
main.c:7:43: warning: implici...
-
intとINTの違いは?
-
C++のfor文について
-
2重定義って??
-
void func( void )について
-
変数の型を定義しなかった場合...
-
C言語のコンパイルエラー
-
C++でboolにintの値を代入する...
-
ハンドルされていない例外が発...
-
構造体の要素すべてに対する四...
-
構造体の宣言でエラーが出ます。
-
プログラムの中で別のmainを呼...
-
[C++]メンバ関数の仮引数について
-
0除算を判定したい
-
プログラム、どのように書いて...
-
typedef enumの使い方を教えて...
-
enumについて
おすすめ情報