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

浙公网安备 33010602011771号