展开全部
这里模拟了一下32313133353236313431303231363533e78988e69d833133333966666120年后的情况,如果需要改变年份,对程序中的year参数进行修改即可
1.DogQ类public class DogQ {
private int age=0;
private String name="0";
public DogQ(){}
public DogQ(int age,String name)
{
this.age = age;
this.name = name;
}
public int getAge()
{
return age;
}
public void incAge()
{
age++;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
}
PS:DogQ类中的name属性表示该只狗是否存活,当name=="1"表示活着,可以生育小狗,name=="0",表示它已经不能再生育小狗了。
2.模拟20年的生育情况public class TestDog {
public static void main(String[] args) {
int year=20;
DogQ dogs[] = new DogQ[10000];
dogs[0]=new DogQ(0,"1");
for(int i=1;i<=year;i++)
{
for(int k=0;k
{
if(dogs[k]!=null)
{
if(dogs[k].getName()=="1")
{
dogs[k].incAge();
}
}
}
for(int j=0;j
{
if(dogs[j]!=null)
{
if(dogs[j].getAge()==3 || dogs[j].getAge()==5)
{
if(dogs[j].getName()=="1")
{
for(int k=j;k
{
if(dogs[k]==null)
{
dogs[k]=new DogQ(0,"1");
break;
}
}
}
}
if(dogs[j].getAge()==6)
{
dogs[j].setName("0");
}
}
}
}
int count=0;
for(int i=0;i
{
if(dogs[i]!=null)
{
if(dogs[i].getName()=="1")
{
count++;
}
}
}
System.out.println("20年后共有狗"+count+"只");
}
}
3.运行情况如下: