こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

フィボナッチ数列の配列について

public class Fibonacci {
public static void main(String[] args) {
int [] fibAray = new int [20]; //フィボナッチ数列用の配列
fibAray[4] = 3;
fibAray[1] = 1;

for (int i = 0; i < fibAray.length; i++) {
fibAray[i] = i + 1;
}
for (int i = 0; i < fibAray.length; i++) {
System.out.println( "第" + (i + 1) + "頁は" + 3);
}
}
}

フィボナッチ数列の第20項までを配列にし、それらを"第4項は3"のように表示する。
という問題で作ったプログラムですが1項~20項まで3と表示されます。
これで合ってるのでしょうか?

投稿日時 - 2008-09-20 17:49:53

QNo.4343563

すぐに回答ほしいです

質問者が選んだベストアンサー

forで出力している内容をよく見てみる。

System.out.println( "第" + (i + 1) + "頁は" + 3);

これは、"第" + (i + 1) + "頁は" + 3 というものを書き出している。それはわかるかね? では、1つ1つ見てみる。

"第"――「第」というテキスト
(i + 1)――変数i(現在の繰り返し回数)に1を足した値
"頁は"――「頁は」というテキスト
3――「3」という数字

よーく見てみな。
書き出している内容の中には、フィボナッチ数列の値は「ない」んだよ。フィボナッチ数列の値なんて全く書き出してない。わかるかね?

では、一体、フィボナッチ数列は、どこで、何と何の値を足して、どこに保管すればいいのか? それを考える。それがわかれば、その保管している値をforのところで書き出せばいい。

投稿日時 - 2008-09-21 00:32:38

補足

何分にも大昔、私の学生時代にフィボナッチ数列なんぞ数学か理科か知りませんが習った覚えがありません。
PC好きで始めた「始めの一歩Java講座」初めて数列を知りました。
夕べから一晩中3の部分に色々当てはめてやっておりますができません。
どこからどこまでは合っているのか下の行のforの部分を変えるのですか?
上の行のforの部分は合ってますか?
3の部分が間違ってる事はわかりますが他は合ってるのですか?
Javaは年寄りの通信教育では難しすぎるものがあります。

投稿日時 - 2008-09-21 06:09:19

お礼

たった今、できました。
Javaプログラマーの皆様、素人の質問にお腹立ち申し訳ありません。
何分にも年寄りの素人なものでお許しください。
public class Fibonacci {
public static void main(String[] args) {
int [] fibAray = new int [20]; //フィボナッチ数列用の配列
fibAray[0] = 1;
fibAray[1] = 1;

for ( int i = 2; i < fibAray.length; i++) {
fibAray[i] = fibAray[i-1] + fibAray[i-2] ;
}
for (int i = 0; i < fibAray.length; i++) {
System.out.println( "第" + (i + 1) + "頁は" + fibAray[i] );
}
}
}

投稿日時 - 2008-09-21 14:47:00

このQ&Aは役に立ちましたか?

30人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.4

なるほど、フィボナッチ数列の定義はわかってらっしゃるようです。
しかし、あなたが配列に代入しているのは、どうみても初項1、
公差1の等差数列ですよ。もう一度フィボナッチ数列の作り方を
よく考えてみてください。

しかも

System.out.println( "第" + (i + 1) + "頁は" + 3);

となっているわけですから、表示しているのは配列とは無関係の
定数3になっています。
配列の要素を次々に表示しないと意味が無いですよね。

"第4項は3"のように表示するというのは具体例を挙げているので
あって、すべて3を表示しろという意味ではないでしょう。

第1項は1
第2項は1
第3項は2
第4項は3
第5項は5
...

のように、すべての項を表示しなさいというのが出題意図だと思いますよ。

投稿日時 - 2008-09-21 00:31:42

補足

Javaは全くの素人なのでもう少しヒントをもらえませんか?
どうか宜しくお願いします。

投稿日時 - 2008-09-21 11:52:25

ANo.3

>合っているのか、わからないので聞いてます。
それではフィボナッチ数列とはどんな数列かを補足にどうぞ。

投稿日時 - 2008-09-20 22:34:34

補足

[数列の値] [性質]
第1項  1
第2項  1
第3項  2  第1項+第2項
第4項  3  第2項+第3項
. . .      
. . .      
第20項 6765 第18項+第19項
. . . 
. . .

投稿日時 - 2008-09-20 22:55:24

ANo.2

>これで合ってるのでしょうか?
合っていると思う方がどうかしている。

投稿日時 - 2008-09-20 20:07:35

補足

合っているのか、わからないので聞いてます。

投稿日時 - 2008-09-20 22:12:33

ANo.1

>"頁は" + 3);
^^^^
当然3しか表示されませんよねw

投稿日時 - 2008-09-20 17:58:37

補足

第4項は3のように表示するですから3と表示されて合ってませんか?
第4項は3のように表示するの問題の意味がよくわかりません。

投稿日時 - 2008-09-20 19:03:20