JAVA练习题,能做多少就做多少。http://bbs.csdn.net/topics/110067294
这个是从CSDN看到的。每天一个吧 。
【程序1】
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
1.程序分析:
这个。。。。。我的程序就没有考虑它的程序分析,直接面向对象构建兔子对象。
======== Main.java ========
package main;
import manager.RabitManager;
public class Main {
public static void main(String[] argvs) {
int rabitNum = 0;
RabitManager manager = new RabitManager();
rabitNum = manager.rabitCnt(8);
System.out.println("rabitNum is " + rabitNum);
}
}
======= RabitManager.java =======
package manager;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import rabit.RabitCouple;
public class RabitManager {
public RabitManager() {
init();
}
private void init() {
rabitList = new ArrayList();
rabitList.add(new RabitCouple(1));
}
public int rabitCnt(int month) {
int current_m = 0;
for (current_m = 1; current_m <= month; current_m++) {
Iterator it = rabitList.iterator();
List newRabit = new ArrayList();
while (it.hasNext()) {
RabitCouple rabit = (RabitCouple) it.next();
if (rabit.bear(current_m)) {
newRabit.add(new RabitCouple(current_m));
}
}
rabitList.addAll(newRabit);
}
return rabitList.size();
}
List rabitList;
}
======== RabitCouple.java =======
package rabit;
public class RabitCouple {
public RabitCouple(int brith_day) {
this.brith_day = brith_day;
}
public boolean bear(int day) {
if ((day - brith_day) >= 2)
return true;
else
return false;
}
private int brith_day;
}
第一个程序就这样了。