private TextView info;
private EditText input;
private Button getInfo;
long answer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getInfo = (Button) findViewById(R.id.button1);
getInfo.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
input = (EditText) findViewById(R.id.editText1);
String s2 = input.getText().toString();
long inputNumber = Integer.parseInt(s2);
for (int i = 0; i <= inputNumber; i++) {
answer = fibonacci(i);
}
input.setText(answer + "");
}
});
}
public static long fibonacci(long n) {
if (n == 0) {
return 0;
} else if (n == 1) {
return 1;
} else {
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
我制作了一个程序,为我通过编辑文本输入的数字生成斐波纳契系列,并在edittext中显示输出值。问题是,当我输入30时,它会生成斐波纳契系列但是当我输入50或100时,应用程序没有响应,停下来。
答案 0 :(得分:0)
我认为这是因为你在UI线程上有很多计算。 例如,你可以在AssyncTask中计算它。