从键盘输入正整数n,利用递归算法求斐波拉契数列中的第n个数,并输出。(F(0)=0 F(1)=1 F(n)=F(n-1)+F(n-2))
时间: 2024-09-23 15:07:55 浏览: 64
要使用递归算法求解斐波那契数列中的第n个数,你可以创建一个名为`fibonacci`的方法,这个方法接收一个整数参数`n`,并根据斐波那契数列的定义返回对应的值。如果`n`为0或1,直接返回0或1;否则,递归调用自身计算前两个数之和。
以下是Java代码实现:
```java
public class Main {
public static void main(String[] args) {
int n = getPositiveIntegerFromUser(); // 获取用户输入的正整数
System.out.println("The " + n + "th Fibonacci number is: " + fibonacci(n));
}
// 递归计算斐波那契数列的第n项
public static long fibonacci(int n) {
if (n <= 1) { // 基础情况:n为0或1时,直接返回n
return n;
} else {
// 递归情况:F(n) = F(n-1) + F(n-2)
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
// 从键盘获取正整数
private static int getPositiveIntegerFromUser() {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter a positive integer: ");
while (!scanner.hasNextInt()) { // 验证输入是否为整数
System.out.println("Invalid input, please enter a positive integer:");
scanner.next();
}
int num = scanner.nextInt();
if (num <= 0) {
throw new IllegalArgumentException("Input must be a positive integer.");
}
return num;
}
}
```
运行这段程序,首先提示用户输入一个正整数,然后计算并输出相应的斐波那契数。
阅读全文
相关推荐















