题目
输入一个数据n,计算斐波那契数列(Fibonacci)的第n个值
1 1 2 3 5 8 13 21 34
规律:一个数等于前两个数之和
代码
package org.hbin.example;
import java.util.Scanner;
/**
*
* @author hbin
* @date 2020/11/16
*/
public class FibonacciTest {
private static final Scanner scan = new Scanner(System.in);
public static void main(String[] args) {
fibonacci();
}
private static void fibonacci() {
System.out.print("请输入一个整数:");
int n = scan.nextInt();
if(n <= 0) {
System.out.println("参数错误!");
return;
}
if(n <= 2) {
System.out.println("fibonacci(" + n + ")=1");
return;
}
int[] dp = new int[n];
dp[0] = dp[1] = 1;
for (int i = 2; i < n; i++) {
dp[i] = dp[i - 2] + dp[i - 1];
}
System.out.println("fibonacci(" + n + ")=" + dp[n - 1]);
}
}