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 ,因此程序仅显示最后一个数字。但它应该显示所有三十个数字。我怎样才能解决这个问题?
最佳答案
这是因为您在循环的每次迭代中不断覆盖 tvOutput
的 text
属性。它显示最后一个数字,因为 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/