2017-11-19 17 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 속성을 계속 무시하기 때문입니다. tvOutput.setText(Integer.toString(feld[29]))이 (가) setText이 (가) 마지막으로 호출 되었기 때문에 마지막 번호가 표시됩니다. 대신 루프에서 제거하고 문자열로 변환 된 배열을 전달하십시오.

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));