张教授采用基因干预技术成功培养出一头母牛,三年后,这头母牛每年会生出1头母牛,
生出来的母牛三年后,又可以每年生出一头母牛。如此循环下去,请问张教授n年后有多少头母牛?
import java.util.ArrayList;
import java.util.Scanner;
public class Cow {
// 每头牛的年龄
private int age=0;
public Cow CowAge() {
age++;
return age > 2 ? new Cow() : null;
}
public static int GetTotalCount(int year) {
ArrayList<Cow> Cow = new ArrayList<Cow>();
// 第一年有一头牛
Cow.add(new Cow());
for (int i = 0; i < year; i++) {
//遍历现有的牛是否能够生产小牛
for(int j=0;j<Cow.size();j++){
//如果到了适当年龄,则生产一个小牛
Cow newCow=Cow.get(j).CowAge();
//如果生产了小牛
if(newCow!=null){
//小牛年龄加1
newCow.CowAge();
//将新产生的小牛添加进数组
Cow.add(newCow);
}
}
}
return Cow.size();
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int year = sc.nextInt();
System.out.println(GetTotalCount(year));
}
}