本帖最后由 黄小贝 于 2012-10-17 05:19 编辑
事情背景:给学妹布置算法作业,然后觉得自己不提前做可能会出状况,所以做完后发这里大家可以一起讨论,也起的监督作用~也想借此机会练练手,没有意外是每日一题,表示从来没有正儿八经刷过算法题,欢迎讨论,拍砖~~
第一天:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
结果:
结果:
代码如下方便调试:- package day1;
- import java.util.ArrayList;
- import java.util.List;
- /**
- * 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
- * @author yellowbaby
- */
- public class Test {
-
- public static void main(String[] args) {
-
- List<Rabbit> rabbits = new ArrayList<Rabbit>();//兔子窝
-
- rabbits.add(new Rabbit());//祖先一对兔
-
- for(int month = 1; month <= 12;month++){//咱先看一年内兔子的数量变化
- for (int i = 0; i < rabbits.size(); i++) {
- rabbits.get(i).addMonth(rabbits);
- }
- System.out.println("第" + month + "个月兔子的数量为" + rabbits.size() + "对~");
- }
-
- }
- }
复制代码- package day1;
- import java.util.List;
- /**
- * 表示一对兔子
- */
- public class Rabbit {
- /**
- * 兔子存活的月数
- */
- private int month = 0;
- /**
- * 兔子的岁数变大了一个月~如果到了三个月~成年兔你懂的~
- */
- public void addMonth(List<Rabbit> rabbits) {
- month ++;
- if(month >= 3){
- rabbits.add(new Rabbit());
- }
- }
-
- }
复制代码 |