34

1递归

package com.test;

import java.util.Scanner;

public class test111 {

/**
* @param args
* 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
月份: 1 2 3 4 5 6 7 8 9 10
兔子数: 1 1 2 3 5 8 8+1+1+1+2=13 13+1+1+1+2+3=21 21+1+1+1+2+3+5=34 34+1+1+1+2+3+5+8=55
第一个月:
1 2 3 4 5 6 7
1 1 1 1 1 1 1

1 2 3 4 5 6 7
1 1 1 1 1 1 1

1 2 3 4 5 6 7
1 1 2 2 2 2 2

1 2 3 4 5 6 7
1 1 2 3 3 3 3

1 2 3 4 5 6 7
1 1 2 3 5(5=3+2基础是3,加上2天前新出生的兔子2=>5) 5 5

1 2 3 4 5 6 7
1 1 2 3 5 8 13

所以
兔子的规律为数列1,1,2,3,5,8,13,21,34,55....

*/
public static void main(String[] args) {
// TODO Auto-generated method stub

int i=0,x = 0;
for(int y=0;y<=1;y++){
Scanner sc = new Scanner(System.in);
x = sc.nextInt();
for(i=1;i<=x;i++){
System.out.println(fn(i));
}
if(x!=0){
y=0;
// continue;
}else{
// System.exit(y);
}
}

}

private static int fn(int x){
if(x==1||x==2){
return 1;
}else{
return fn(x-1)+fn(x-2);
}
// Integer a = new Integer();
//a.MAX_VALUE 2147483647 min:-2147483648
}
/**
* for语句的格式:
for(<初始化>; <条件表达式>; <增量>) 语句;
执行顺序如下:
初始化->条件表达式->语句->增量->条件表示式->语句-增量->...->条件表达式。
在执行的时候,初始化语句只执行一次,后续按照条件表达式进行判断,如果符合条件,则执行[语句],然后执行增量。再根据条件表示式进行判断,重复上面过程。
*/
}

posted on 2017-07-04 16:42  小确幸~  阅读(151)  评论(0编辑  收藏  举报

导航