经典JAVA题一
问题描述:
有一对兔子,从出生后第3个月起每个月都生一对兔子, 小兔子长到第三个月后每个月又生一对兔子,假如兔子不死,问每个月的兔子总数为多少?
package JAVA; import java.util.ArrayList; import java.util.Scanner; class Rabbit{ private int age; Rabbit(){ age=0; } public int getAge() { return age; } public void setAge() { age++; } //产生一个新对象,即生下一对兔子 public Rabbit born(){ return new Rabbit(); } } public class test01 { /** * @param args */ /* * 题目描述:有一对兔子,从出生后第3个月起每个月都生一对兔子, * 小兔子长到第三个月后每个月又生一对兔子,假如兔子不死,问每个月的兔子总数为多少? */ public static void main(String[] args) { // TODO Auto-generated method stub int monthNum; String temp; int num; //输出兔子的数 boolean run=true; Scanner in=new Scanner(System.in); while(run){ System.out.println("请输入月份数或输入exit退出!"); temp=in.nextLine(); if(temp.equals("exit")){ System.out.println("系统退出了!"); System.exit(0); }else{ monthNum=Integer.parseInt(temp.toString()); num=getNum(monthNum); System.out.println(monthNum+"个月后,兔子的总数为:"+num); } } } public static int getNum(int n){ int num=0; ArrayList<Rabbit> rabbitArray=new ArrayList<Rabbit>(); rabbitArray.add(new Rabbit()); for(int i=0;i<n;i++){ for(int j=0;j<rabbitArray.size();j++){ rabbitArray.get(j).setAge(); if(rabbitArray.get(j).getAge()>3){ rabbitArray.add(rabbitArray.get(j).born()); } } System.out.println("第"+(i+1)+"个月后兔子的总数为:"+rabbitArray.size()); } num=rabbitArray.size(); return num; } }