Java中的斐波那契数问题

问题描述:假设一对刚出生的小兔一个月后就能长成大兔,再过一个月就能生下一对小兔,并且此后每个月都生一对小兔,一年内没有发生死亡,

* 问:一对刚出生的兔子,一年内繁殖成多少对兔子?

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类型的,则程序正常运行。反之,程序出现异常。却没有找到很好的解决办法,希望小伙伴们能提出你的见解。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔...
    叶总韩阅读 5,187评论 0 41
  • Java经典问题算法大全 /*【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子...
    赵宇_阿特奇阅读 1,981评论 0 2
  • 比较笨就把所有的都复制过来吧,以后再整理://for(表达式1,条件表达式;表达式2){// 语句块//} pu...
    人鱼姑娘5394阅读 708评论 0 0
  • 1 顺序语句 语句:使用分号分隔的代码称作为一个语句。 注意:没有写任何代码只是一个分号的时候,也是一条语句,...
    哈哈哎呦喂阅读 423评论 0 0
  • Win7下如何打开DOS控制台? a:开始--所有程序--附件--命令提示符 b:开始--搜索程序和文件--cmd...
    逍遥叹6阅读 1,639评论 4 12