java中得一个面试题

来源:百度知道 编辑:UC知道 时间:2024/05/27 14:31:39
一头小母牛,从出生起第四个年头开始每年生一头母牛,按此规律,第20年时有多少头母牛?

单纯的算法解决:f(n)=f(n-1)+f(n-3);这个就不必再写了。。

我需要得是用面向对象得编程思想去解决 。。

如有高手,麻烦帮忙指点一下,想了很久,没想出来。

才学不久 自己写的 不对也别喷啊~
两个类
cow.java

public class cow
{
static int year = 1;
static ArrayList<cow> cowhome = new ArrayList<cow>();

int bornyear;

cow(int bornyear)
{
this.bornyear = bornyear;
}

void born(ArrayList<cow> al)
{

if (year - bornyear >= 3)
{
cow c = new cow(year);
al.add(c);
}
}
void start(int n)
{
while (cow.year <= n)
{
for (int i = 0; i < cowhome.size(); i++)
{
cowhome.get(i).born(cowhome);
}
cow.year++;
}
}
void printfo()
{
System.out.print("第"+(cow.year-1)+"年"+"共有牛"+cowhome.size()+"头。");
}
}
demo.java 测试用的

class demo
{
public static void main(String[] args)
{
cow c=new cow(1);
cow.cowhome.