1

フィボナッチ数列を出力する簡単なプログラムを作成しようとしています。フィボナッチ数列の値を計算する fibNumber という名前のメソッドを作成し、run() メソッドで for ループを使用してその値を 15 回出力したいと考えています。私が抱えている問題は、for ループの println メソッドです。Eclipseは、「nは値に解決できません」および「iは値に解決できません」と言っています。変数の宣言に関して、すべての基本をカバーしたと思いました。何か不足していますか?

書きたいのはF15まで

F0 = 0
F1 = 1
F2 = 1
F3 = 2
F4 = 3
F5 = 5

import acm.program.*;


public class FiccononicSequence extends ConsoleProgram {

public void run(){
    println("This program prints out the Fibonacci sequence.");

    for (i = 1; i <= 15; i++){

        println("F" + i + " = " + fibNumber(n));

    }




}


private int fibNumber(int n){
    if (n == 0){
    return 0; 
    }else{ if (n == 1){
    return 1;
    }else{
    return fibNumber(n - 1) + fibNumber(n - 2);




}      
4

4 に答える 4

2

これを試して...

-ここでの問題scopeは、変数の についてです。

- は、メソッド内の別のローカル変数のように、ではなく、メソッドに対してローカルな typeでi宣言する必要があります。intrun()nnfibNumber()

- inは完全に異なる範囲にあり、互いに見えません。

for (int i = 1; i <= 15; i++){

        println("F" + i + " = " + fibNumber(i));  // i should be here.

    }
于 2012-10-29T07:10:39.047 に答える
0

「ん」は?おそらく、「n」の代わりに「i」を使用する必要があります。

于 2012-10-29T06:39:47.743 に答える
0

問題は、変数がメソッド コンテキストのどこにも宣言されていないfibnumberため、メソッドを呼び出す方法です。nrun

for (int i = 1; i <= 15; i++){
    println("F" + i + " = " + fibNumber(n));  //what's n?
}

iそれを修正するには、変数を送信するだけです:

for (int i = 1; i <= 15; i++){
    println("F" + i + " = " + fibNumber(i));  //now it compiles!
}
于 2012-10-29T06:40:59.937 に答える
0

iforループで定義して渡す必要がありますfibNumber

for (int i = 1; i <= 15; i++){<-- Define i 
    println("F" + i + " = " + fibNumber(i));<-- pass `i `
}
于 2012-10-29T06:41:25.027 に答える