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,因此程序仅在最后显示最后一个数字。但是应该显示所有三十个数字。我怎样才能解决这个问题?
最佳答案
这是因为您在循环的每次迭代中都不断覆盖text
的tvOutput
属性。它显示最后一个数字,因为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));
关于java - 如何产生斐波那契数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47380538/