2017-11-19 9 views
0
private TextView tvOutput; 

int[]feld = new int[30]; 
     feld[0]=0; 
     feld[1]=1; 

     for(int i=2; i<30; i++){ 
      feld[i]=feld[i-2]+feld[i-1]; 

      tvOutput.setText (Integer.toString(feld[i])); 
     } 

コードは私のvar iを各ループで上書きします。したがって、プログラムは最後に最後の数字を表示します。しかし、それはすべての30の数字を表示することになっています。どうすればこの問題を解決できますか?フィボナッチ数の生成方法は?

答えて

1

これは、ループの繰り返しごとにtvOutputtextプロパティをオーバーライドし続けるためです。 setTextが最後に呼び出されたのはtvOutput.setText(Integer.toString(feld[29]))なので、最後の数字が表示されます。代わりにループから削除し、文字列に変換された配列を渡す:

int[]feld = new int[30]; 
    feld[0]=0; 
    feld[1]=1; 

    for(int i=2; i<30; i++) { 
     feld[i]=feld[i-2]+feld[i-1]; 
    } 

    tvOutput.setText(Arrays.toString(feld)); 
関連する問題