所谓递归就是方法本身调用自身的编程技巧称作为递归调用。
package com.yuxinglian.alg;
import java.util.Scanner;
public class Fibonacci {
public long fibonacci(int n){
if (n == 0 || n ==1) {
return 1;
}else{
return fibonacci(n-1) + fibonacci(n-2);
}
}
public static void main(String[] args) {
Scanner sc ;
int input;
Fibonacci f;
System.out.println("兔子生崽崽计算兔子数量问题:");
System.out.print("请输入一个正整数:");
try {
sc = new Scanner(System.in);
input = sc.nextInt();
if (input < 0) {
System.out.println("您的输入有误!");
}else if(input > 0){
//测试算法运行时间,以纳秒为单位
long starTime = System.nanoTime();//获取算法开始运行时间
f = new Fibonacci();
System.out.println("兔子数量(单位:只): " + f.fibonacci(input));
long endTime = System.nanoTime();//获取算法运行结束时间
//计算算法运行时间
System.out.println("fibonacci(int n)方法运行的时间是:" + (endTime - starTime) +" 纳秒");
}else {
System.out.println("您输入的不是整数!");
}
} catch (Exception e) {
System.out.println("您的输入有误!");
}
}
}