问题描述:假设一对刚出生的小兔一个月后就能长成大兔,再过一个月就能生下一对小兔,并且此后每个月都生一对小兔,一年内没有发生死亡,
* 问:一对刚出生的兔子,一年内繁殖成多少对兔子?
package Test;
import java.util.Scanner;
/**
* Created by hasee on 2017/7/10.
*
* 斐波那契数问题(不死神兔问题)
*/
public class Test4 {
public static void main(String[] args) {
//demo1();
Scanner sc = new Scanner(System.in);
System.out.println("请您输入一个整数:");
int number=sc.nextInt();
System.out.println(fun(number));
}
//方法二: 利用递归法
public static int fun(int num){
if (num == 1 || num == 2) {
return 1;
} else {
return fun(num - 2) + fun(num - 1);
}
}
//方法一: 利用数组
private static void demo1() {
Scanner sc = new Scanner(System.in);
System.out.println("请您输入一个整数:");
int num = sc.nextInt();
int[] arr = new int[num];
arr[0] = 1;
arr[1] = 1;
for (int i = 2; i < arr.length; i++) {
arr[i] = arr[i - 2] + arr[i - 1];
}
System.out.println(arr[arr.length - 1]);
}
}
以上的求解方法依旧存在Bug,没对键盘输入的情况进行判断,如果在控制台输入的是Int类型的,则程序正常运行。反之,程序出现异常。却没有找到很好的解决办法,希望小伙伴们能提出你的见解。
网友评论