62,584
社区成员




int[] cows= new int[20];
cows[0]=cows[1]=cows[2]=1;
cows[3]=2;
for (int i = 4; i < cows.length; i++) {
cows[i]=cows[i-4]+cows[i-3]+cows[i-2];
}
for (int i = 0; i < cows.length; i++) {
System.out.print(cows[i]+" ");
}
//55把我误导了 看来还是我是正确的
/**
* 一个农夫养了一头牛,三年后,这头牛每年会生出1头牛,生出来的牛三年后,又可以每年生出一头牛……问农夫10年后有多少头牛?n年呢?(用JAVA实现)
* 首先鄙视一下牛不死现象和公牛产子现象
* @param str
*/
public static void main(String[] str)
{
System.out.println(process(1,10));
}
public static int process(int initCount,int year)
{
int zeroYearsOld = initCount; //刚出生的牛 初始化为1
int oneYearsOld = 0; //1岁的 数量
int towYearsOld = 0; //2岁的数量
int ripeCount = 0; //成熟的,可以无性繁殖的数量
int max = initCount; //总数
for(int i=0;i<year;i++)
{
int temp = towYearsOld; //今年牛成熟的数量
towYearsOld = oneYearsOld; //牛长大一岁
oneYearsOld = zeroYearsOld; //牛长大一岁
ripeCount += temp; //成熟数量加上今年成熟的
max +=ripeCount; //所有成熟的牛都会生一个,所以原来牛群数量加上成熟牛的数量等于现在数量
zeroYearsOld = ripeCount; //刚出生的牛
System.out.println("第"+(i+1)+"年:牛的数量为"+max+"头,新增"+zeroYearsOld+"头");
}
return max;
}
import java.util.Scanner;
/**
*
* @author crose_1988@163.com
*/
public class Cows {
private static void forEachYear(int[] waitYears) {
int[] cows = waitYears.clone();
waitYears[cows.length-1] = cows[0];
waitYears[0] = cows[0] + cows[1];
for (int i=cows.length-2; i>0; i--)
waitYears[i] = cows[i+1];
}
public static void main(String[] args) {
int waitYears[] = {0, 0, 1};
System.out.print("input years: ");
Scanner scanner = new Scanner(System.in);
try {
int year = scanner.nextInt();
int counts = 0;
for (int i=1; i<=year; i++)
forEachYear(waitYears);
for (int i=0; i<waitYears.length; i++)
counts += waitYears[i];
System.out.println("cows: " + counts);
} catch (Exception e) {
e.printStackTrace();
}
}
}
package org.lkm.test;
import java.util.ArrayList;
import java.util.List;
/**
* @author
*/
public class c {
private int age = 0;
/**
* 是否可以生产小牛
*
* @return True | False
*/
public boolean isCreatSmallCow() {
return (age >= 3) ? true : false;
}
/**
* 过年了,年龄又大了一岁
*/
public void addYear() {
age++;
}
/**
* @param args
*/
public static void main(String[] args) {
List<c> cowList = new ArrayList<c>();
// 第一头小牛
cowList.add(new c());
int yearCount = 10;
// 就这样一年年过
for (int i = 1; i <= yearCount; i++) {
int rowNum = cowList.size();
for (int j = 0; j < rowNum; j++) {
c o = cowList.get(j);
// 过年了
o.addYear();
// 能生小牛吗?
if (o.isCreatSmallCow()) {
cowList.add(new c());
}
}
}
System.out.println(yearCount + "年后将有【" + cowList.size() + "】头牛。");
}
}