package
com.jasonhuang.test;
import java.util.ArrayList;
/** */ /**
* 规则: 1.成年羊每年生一只小羊 (从第四年开始生育) 2.不分公母 3.长生不老
*
* 设第一年从外进一只小羊,从此子又生孙,孙又生子,问第n年共有多少羊?
*/
public class TestSheep1 ... {
// 羊圈
private ArrayList<Sheep> sheeps = new ArrayList<Sheep>();
/** *//**
* 测试到下一年
*/
private void next() ...{
// 羊圈所有羊长大一岁
int length = sheeps.size();
for (int i = 0; i < length; i++) ...{
sheeps.get(i).grow();
}
}
public TestSheep1() ...{
// 买进第一只羊
Sheep sheep = this.new Sheep();
sheeps.add(sheep);
}
/** *//**
* @param args
*/
public static void main(String[] args) ...{
TestSheep1 test = new TestSheep1();
// 四十年,太多会导致内存不足
for (int i = 1; i <= 40; i++) ...{
// 测试到下一年
test.next();
// 打印羊圈总数
System.out.printf("%d年后,一共%d只羊。 ", i, test.sheeps.size());
}
}
class Sheep ...{
// 羊的岁数
private int age = 0;
public Sheep() ...{
// 买进来为0岁
age = 0;
}
public void grow() ...{
// 到四岁可以产子,并放入羊圈
if (++age >= 4) ...{
Sheep sheep = new Sheep();
sheeps.add(sheep);
}
}
}
}
import java.util.ArrayList;
/** */ /**
* 规则: 1.成年羊每年生一只小羊 (从第四年开始生育) 2.不分公母 3.长生不老
*
* 设第一年从外进一只小羊,从此子又生孙,孙又生子,问第n年共有多少羊?
*/
public class TestSheep1 ... {
// 羊圈
private ArrayList<Sheep> sheeps = new ArrayList<Sheep>();
/** *//**
* 测试到下一年
*/
private void next() ...{
// 羊圈所有羊长大一岁
int length = sheeps.size();
for (int i = 0; i < length; i++) ...{
sheeps.get(i).grow();
}
}
public TestSheep1() ...{
// 买进第一只羊
Sheep sheep = this.new Sheep();
sheeps.add(sheep);
}
/** *//**
* @param args
*/
public static void main(String[] args) ...{
TestSheep1 test = new TestSheep1();
// 四十年,太多会导致内存不足
for (int i = 1; i <= 40; i++) ...{
// 测试到下一年
test.next();
// 打印羊圈总数
System.out.printf("%d年后,一共%d只羊。 ", i, test.sheeps.size());
}
}
class Sheep ...{
// 羊的岁数
private int age = 0;
public Sheep() ...{
// 买进来为0岁
age = 0;
}
public void grow() ...{
// 到四岁可以产子,并放入羊圈
if (++age >= 4) ...{
Sheep sheep = new Sheep();
sheeps.add(sheep);
}
}
}
}