版权声明:
本文为博主原创文章,未经博主允许不得转载。
/* (程序头部注释开始)
版权声明:保留个人权利。 如程序有不当之处,敬请指正。
* 文件名称: 《一些简单的java编程题(2) ————古典问题(兔子问题)》
* 作 者: 那就去巴黎
* 完成日期: 2018 年 01 月 30 日
* 版 本 号: JDK 9.0.1
问题描述:
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?
编写一个Java程序,找出第n个月共有多少对兔子。
题目分析:
兔子的对数规律为 :数列 1,1,2,3,5,8,13,21,34.... 可以发现1,2月均为1,从第三月开始,每个月都是前两月对数之和。
* (程序头部的注释结束)
*/
package questions;
import java.util.Scanner; //导入java.util包中的Scanner这个工具类
//import java.util.* 可以导入包中所有类,也可以达到效果。 实际开发中都采用“importjava.util.Scanner;”这种用法,因为程序中没用到的包导入的话只会影响程序效率。
public class Q2
{
public static void main (String[] args)
{
System.out.println("请输入一共多少个月:");
Scanner input= new Scanner(System.in);
int n=input.nextInt(); // 用来让用户自己输入月数的值
found(n);
System.out.println("第 "+n+" 个月兔子的对数为: "+found(n));
input.close(); // 关闭配置内存
}
private static int found (int n) //递归方法实现
{
if(n==1 || n==2) // || 和 | 都是表示“或”,区别是||只要满足第一个条件,后面的条件就不再判断,而|要对所有的条件进行判断。
return 1;
else
return(found(n-1)+found(n-2));
}
}
程序运行结果如下: