改动前/**
* 一群牛的故事
*/
import java.util.ArrayList;
import java.util.List;
/**
* 母牛
* @author dinghun8leech
*/
class Cow {
/** age 年龄 */
private int age;
/**
* 默认构造方法,创建(生产)一头年龄为1岁的小母牛
*/
public Cow() {
age = 1;
}
public Cow(int a) {
age = a;
}
/**
* 成长,母牛年龄+1
*/
public void grow() {
++age;
}
/**
* 生产,当母牛年龄在5岁或以上时产生1头小母牛
* 年龄低于5岁时无法生产,返回null
* @return Cow 一头年龄为1岁的小母牛
*/
public Cow produce() {
if (age > 4) {
return new Cow();
}
return null;
}
}
/**
* 怪兽牧场
* @author dinghun8leech
*/
public class CowCount {
public static void main(String [] args) {
int year = 20;//测试年限
int init_cow_count = 1;//牧场起始小母牛数量
List<Cow> cows = new ArrayList<Cow>();//牛棚
for (int i=0;i<init_cow_count;i++) {
cows.add(new Cow(5));
}
for (int i=0;i<year;i++) {
int cow_count = cows.size();
for (int j=0;j<cow_count;j++) {//每年都遍历一下牛棚中的所有牛
Cow cow = cows.get(j);
Cow newCow = cow.produce();
if (newCow != null) {//看看当前年龄能否生产小牛
cows.add(newCow); //这里的编程技巧,cows是扩充的,用一个变量来控制下标
}
cow.grow();//每年都会成长
}
}
System.out.println("怪兽牧场"+year+"后的母牛数从"+init_cow_count+"头增长到"+cows.size()+"头。");
}
}
//怪兽牧场20后的母牛数从1头增长到431头。改动后/**
* 一群牛的故事
*/
import java.util.ArrayList;
import java.util.List;
/**
* 母牛
* @author dinghun8leech
*/
class Cow {
/** age 年龄 */
private int age;
/**
* 默认构造方法,创建(生产)一头年龄为1岁的小母牛
*/
public Cow() {
age = 1;
}
public Cow(int a) {
age = a;
}
/**
* 成长,母牛年龄+1
*/
public void grow() {
++age;
}
/**
* 生产,当母牛年龄在5岁或以上时产生1头小母牛
* 年龄低于5岁时无法生产,返回null
* @return Cow 一头年龄为1岁的小母牛
*/
public Cow produce() {
if (age > 4) {
return new Cow();
}
return null;
}
}
/**
* 怪兽牧场
* @author dinghun8leech
*/
public class CowCount {
public static void main(String [] args) {
int year = 20;//测试年限
int init_cow_count = 1;//牧场起始小母牛数量
List<Cow> cows = new ArrayList<Cow>();//牛棚
for (int i=0;i<init_cow_count;i++) {
cows.add(new Cow(5));
}
for (int i=0;i<year;i++) {
int cow_count = cows.size();
for (int j=0;j<cow_count;j++) {//每年都遍历一下牛棚中的所有牛
Cow cow = cows.get(j);
cow.grow();//每年都会成长
Cow newCow = cow.produce();
if (newCow != null) {//看看当前年龄能否生产小牛
cows.add(newCow); //这里的编程技巧,cows是扩充的,用一个变量来控制下标
}
}
}
System.out.println("怪兽牧场"+year+"后的母牛数从"+init_cow_count+"头增长到"+cows.size()+"头。");
}
}
//怪兽牧场20后的母牛数从1头增长到907头。我改动前的代码 for (int j=0;j<cow_count;j++) {//每年都遍历一下牛棚中的所有牛
Cow cow = cows.get(j);
Cow newCow = cow.produce();
if (newCow != null) {//看看当前年龄能否生产小牛
cows.add(newCow); //这里的编程技巧,cows是扩充的,用一个变量来控制下标
}
cow.grow();//每年都会成长 改动后的 for (int j=0;j<cow_count;j++) {//每年都遍历一下牛棚中的所有牛
Cow cow = cows.get(j);
cow.grow();//每年都会成长
Cow newCow = cow.produce();
if (newCow != null) {//看看当前年龄能否生产小牛
cows.add(newCow); //这里的编程技巧,cows是扩充的,用一个变量来控制下标
}
} 在同样的for循环内, 只是变动了位置 , 结果为什么不一样,一个431,而另一个是907,不过我认为907,是对的,但431的答案,也没找出错误。
* 一群牛的故事
*/
import java.util.ArrayList;
import java.util.List;
/**
* 母牛
* @author dinghun8leech
*/
class Cow {
/** age 年龄 */
private int age;
/**
* 默认构造方法,创建(生产)一头年龄为1岁的小母牛
*/
public Cow() {
age = 1;
}
public Cow(int a) {
age = a;
}
/**
* 成长,母牛年龄+1
*/
public void grow() {
++age;
}
/**
* 生产,当母牛年龄在5岁或以上时产生1头小母牛
* 年龄低于5岁时无法生产,返回null
* @return Cow 一头年龄为1岁的小母牛
*/
public Cow produce() {
if (age > 4) {
return new Cow();
}
return null;
}
}
/**
* 怪兽牧场
* @author dinghun8leech
*/
public class CowCount {
public static void main(String [] args) {
int year = 20;//测试年限
int init_cow_count = 1;//牧场起始小母牛数量
List<Cow> cows = new ArrayList<Cow>();//牛棚
for (int i=0;i<init_cow_count;i++) {
cows.add(new Cow(5));
}
for (int i=0;i<year;i++) {
int cow_count = cows.size();
for (int j=0;j<cow_count;j++) {//每年都遍历一下牛棚中的所有牛
Cow cow = cows.get(j);
Cow newCow = cow.produce();
if (newCow != null) {//看看当前年龄能否生产小牛
cows.add(newCow); //这里的编程技巧,cows是扩充的,用一个变量来控制下标
}
cow.grow();//每年都会成长
}
}
System.out.println("怪兽牧场"+year+"后的母牛数从"+init_cow_count+"头增长到"+cows.size()+"头。");
}
}
//怪兽牧场20后的母牛数从1头增长到431头。改动后/**
* 一群牛的故事
*/
import java.util.ArrayList;
import java.util.List;
/**
* 母牛
* @author dinghun8leech
*/
class Cow {
/** age 年龄 */
private int age;
/**
* 默认构造方法,创建(生产)一头年龄为1岁的小母牛
*/
public Cow() {
age = 1;
}
public Cow(int a) {
age = a;
}
/**
* 成长,母牛年龄+1
*/
public void grow() {
++age;
}
/**
* 生产,当母牛年龄在5岁或以上时产生1头小母牛
* 年龄低于5岁时无法生产,返回null
* @return Cow 一头年龄为1岁的小母牛
*/
public Cow produce() {
if (age > 4) {
return new Cow();
}
return null;
}
}
/**
* 怪兽牧场
* @author dinghun8leech
*/
public class CowCount {
public static void main(String [] args) {
int year = 20;//测试年限
int init_cow_count = 1;//牧场起始小母牛数量
List<Cow> cows = new ArrayList<Cow>();//牛棚
for (int i=0;i<init_cow_count;i++) {
cows.add(new Cow(5));
}
for (int i=0;i<year;i++) {
int cow_count = cows.size();
for (int j=0;j<cow_count;j++) {//每年都遍历一下牛棚中的所有牛
Cow cow = cows.get(j);
cow.grow();//每年都会成长
Cow newCow = cow.produce();
if (newCow != null) {//看看当前年龄能否生产小牛
cows.add(newCow); //这里的编程技巧,cows是扩充的,用一个变量来控制下标
}
}
}
System.out.println("怪兽牧场"+year+"后的母牛数从"+init_cow_count+"头增长到"+cows.size()+"头。");
}
}
//怪兽牧场20后的母牛数从1头增长到907头。我改动前的代码 for (int j=0;j<cow_count;j++) {//每年都遍历一下牛棚中的所有牛
Cow cow = cows.get(j);
Cow newCow = cow.produce();
if (newCow != null) {//看看当前年龄能否生产小牛
cows.add(newCow); //这里的编程技巧,cows是扩充的,用一个变量来控制下标
}
cow.grow();//每年都会成长 改动后的 for (int j=0;j<cow_count;j++) {//每年都遍历一下牛棚中的所有牛
Cow cow = cows.get(j);
cow.grow();//每年都会成长
Cow newCow = cow.produce();
if (newCow != null) {//看看当前年龄能否生产小牛
cows.add(newCow); //这里的编程技巧,cows是扩充的,用一个变量来控制下标
}
} 在同样的for循环内, 只是变动了位置 , 结果为什么不一样,一个431,而另一个是907,不过我认为907,是对的,但431的答案,也没找出错误。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货