java求求满足条件的斐波那契数
时间: 2024-06-23 13:01:20 浏览: 7
在Java中,我们可以使用递归或动态规划的方法来找到满足特定条件(例如大于等于某个值)的斐波那契数。这里我会展示两种方法:
1. **递归**:
```java
public class Fibonacci {
public static long fibonacci(int n) {
if (n <= 0) return 0;
if (n == 1 || n == 2) return 1;
return fibonacci(n - 1) + fibonacci(n - 2);
}
public static void findFibonacciGreaterThan(int target) {
for (int i = 1; ; i++) {
long fib = fibonacci(i);
if (fib >= target) {
System.out.println("The first Fibonacci number greater than or equal to " + target + " is: " + fib);
break;
}
}
}
public static void main(String[] args) {
int condition = 100; // 你可以更改这个值
findFibonacciGreaterThan(condition);
}
}
```
在这个例子中,`findFibonacciGreaterThan`方法会不断递归计算斐波那契数,直到找到第一个大于或等于给定目标值的数。
2. **动态规划**:
```java
public class Fibonacci {
public static long fibonacci(int n, long[] memo) {
if (n <= 0) return 0;
if (n == 1 || n == 2) return 1;
if (memo[n] != 0) return memo[n];
memo[n] = fibonacci(n - 1, memo) + fibonacci(n - 2, memo);
return memo[n];
}
public static void findFibonacciGreaterThan(int target) {
long[] memo = new long[target + 1];
for (int i = 0; i < memo.length; i++) memo[i] = -1;
for (int i = 1; ; i++) {
long fib = fibonacci(i, memo);
if (fib >= target) {
System.out.println("The first Fibonacci number greater than or equal to " + target + " is: " + fib);
break;
}
}
}
public static void main(String[] args) {
int condition = 100; // 你可以更改这个值
findFibonacciGreaterThan(condition);
}
}
```
动态规划版本使用一个数组`memo`来存储已经计算过的斐波那契数值,避免了重复计算,效率更高。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)