如何用Java编程实现经典的‘青蛙跳井’问题(Fibonacci数列)?
时间: 2024-09-23 14:10:02 浏览: 110
"青蛙跳井"通常是指求解斐波那契数列的问题,这是一个递归的经典例子,但在实际编程中,为了避免无限递归导致栈溢出,我们更倾向于使用循环或动态规划的方法。以下是用Java实现斐波那契数列的一种常见方式:
```java
public class Fibonacci {
public static int fibonacci(int n) {
if (n <= 0) {
throw new IllegalArgumentException("输入值必须大于0");
}
if (n == 1 || n == 2) {
return n - 1; // 斐波那契序列的前两项为0和1,这里减1是因为题目描述通常从第1项开始计数
}
int a = 0, b = 1;
for (int i = 3; i <= n; i++) {
int c = a + b;
a = b;
b = c;
}
return b;
}
public static void main(String[] args) {
int n = 10; // 要求的第几个斐波那契数
try {
System.out.println("第 " + n + " 个斐波那契数是:" + fibonacci(n));
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
}
}
}
```
在这个程序中,`fibonacci`函数通过循环计算并返回第n个斐波那契数,避免了递归带来的性能问题。
阅读全文