java基础练习 古典问题:兔子生长
2017-12-29 20:22
387 查看
题目:
古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,
问每个月的兔子对数为多少?
程序分析:解决这道问题的关键在于寻找兔子生长的规律。
利用高中的 数列解决问题。
1月 a 2月 a 3 月 ab 4月 abc 5月abcde 6月 abcdefgh 7月 abcdefghijklm
1,1,2,3,5,7,15 首项为1,第二项为2 ,第三项起 每项的值为前两项的和。
从而得出规律 f(1)=1 f(2)=2 f(n)=f(n-1)+f(n-2)
代码如下:
import java.util.Scanner;
public class 古典问题_兔子 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入月份:");
int n = sc.nextInt();//输入月份
System.out.println("到第"+n+"月有兔子"+f(n)+"对");
sc.close();
}
public static int f(int n){
if(n==1||n==2){
return 1;
}else{
return f(n-1)+f(n-2);
}
}
}
运行结果如下:
古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,
问每个月的兔子对数为多少?
程序分析:解决这道问题的关键在于寻找兔子生长的规律。
利用高中的 数列解决问题。
1月 a 2月 a 3 月 ab 4月 abc 5月abcde 6月 abcdefgh 7月 abcdefghijklm
1,1,2,3,5,7,15 首项为1,第二项为2 ,第三项起 每项的值为前两项的和。
从而得出规律 f(1)=1 f(2)=2 f(n)=f(n-1)+f(n-2)
代码如下:
import java.util.Scanner;
public class 古典问题_兔子 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入月份:");
int n = sc.nextInt();//输入月份
System.out.println("到第"+n+"月有兔子"+f(n)+"对");
sc.close();
}
public static int f(int n){
if(n==1||n==2){
return 1;
}else{
return f(n-1)+f(n-2);
}
}
}
运行结果如下:
相关文章推荐
- 《java基础学习之——注解 问题练习答案》
- 黑马程序员-Java if语句练习-暴露的基础小问题
- java基础语法练习--汉诺塔问题
- 【我的Java笔记】递归练习_兔子问题
- 蓝桥杯-基础练习-java-2n皇后问题
- 黑马程序员——JAVA基础--- 集合IO综合练习排序问题
- 基础练习 2n皇后问题 【 Java 】
- java编译古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?
- 【程序1】 TestRabbit.java 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子, //假如兔子都不死,问每个月的兔子总数为多少?
- Java中循环问题:for,while,do-while 各种练习(打印上三角、下三角、输出100以内的素数、水仙花、最大公约、最小公倍数、分解质因数、兔子问题)
- JAVA基础再回首(二十四)——多线程的概述、实现方式、线程控制、生命周期、多线程程序练习、安全问题的解决
- java古典问题:兔子生兔子
- JAVA基础编程之兔子问题
- 一些简单的java编程题(2) ————古典问题(兔子问题)
- JAVA基础:Java多语言编码问题解析
- java中 中文问题详解-Java基础-Java-编程开发
- Java常见问题集锦(来自Sun中国官方站)-Java基础-Java-编程开发
- java基础:困扰jsp的一些问题与解决方法
- 子父类问题.JAVA基础
- JAVA基础笔试、面试常见问题集合