- ベストアンサー
プログラムの処理内容を教えて下さい(素人レベル?)
- Javaのプログラム内容がわからないので教えて下さい。フィボナッチ数列を計算するプログラムですが、特定の式の使い方や処理の順番が理解できません。
- 具体的なわからないポイントは、(1) 11、13行目の「n + f_n」の式の意味と結果。(2) 15、16行目の「f_0 = f_1 の後に f_1 = f_n」の処理順番です。
- 質問の詳細コードとコンソールの出力も添付しました。お手数ですが、プログラムの処理手順と具体的な理解をご教示願えますか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (3)
- wormhole
- ベストアンサー率28% (1626/5665)
>(1) 11、13行目の「n + f_n」 あなたには "n=" + n + " f(n)=" + f_n が n + f_n に見えるんですか? だとしたら "n=" と " f(n)=" は、どこに消えたんでしょうか? >(2) 15、16行目の「f_0 = f_1 の後に f_1 = f_n」 f(n) = f(n - 1) + f(n - 2) f(n+1) = f(n) + f(n - 1) を見比べて何か気づきませんか。
お礼
ありがとうございます。 forより上のintの値を代入してしまってわからなくなっていた事に気付けました。
- Kaneyan-R
- ベストアンサー率42% (1341/3131)
〉私としては、"if (n == 10) {"が解らん。何のためにあるんだろう。 文字揃えかな? 真が半角で、偽が全角だから。
- Kaneyan-R
- ベストアンサー率42% (1341/3131)
〉11行目の[ n + f_n ]に代入して ? どこにも n+f_n なんて出てきてませんが? nへの代入は、ループの初期値として与えた「2」だけで、他に代入してませんよ。 もしかして、 System.out.println("n=" + n + " f(n)=" + f_n); のこと? これは「文字列」ですよ。 文字列「n=」+「nの値」、文字列「f(n)=」+「f_nの値」を並べて出力しているだけです。 一回目 n=2 f_0=0 f_1=1 f_n=0+1=1 二回目 n=3 f_0=1 f_1=1 f_n=1+1=2 三回目 n=4 f_0=1 f_1=2 f_n=1+2=3 四回目 n=5 f_0=2 f_1=3 f_n=2+3=5 っと言うように、f_0とf_1にはそれぞれ前回計算した「f_1の値」と「f_nの値」が入ります。
お礼
ありがとうございます。 お恥ずかしながら、ご指摘の通り、文字列と勘違いしてしまいました。
お礼
ありがとうございます。 それぞれの行がそのまま時系列になっていて非常にわかり易かったです。