经典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;
	}
}

 

posted @ 2011-11-13 19:36  月亮的影子  阅读(194)  评论(0编辑  收藏  举报