/** 需求:
* 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔 子,
* 假如兔子都不死,问指定月份的兔子对数为多少?
*
* 规律:
* 第一个月:1
* 第二个月:1
* 第三个月:2
* 第四个月:3
* 第五个月:5
* 第六个月:8
* ...
*
* 规律:从第三个月开始,每个月的兔子对数是前两个月的兔子对数之和 * 第一个月和第二个月的兔子对数都是1
*
*/
public class Method3 {
public static void main(String[] args){
int month = 6;
//int rabbit = FBNQ(month);
//System.out.println(rabbit);
int rabbit = getSum(month);
System.out.println(rabbit);
}
//方法一:递归
public static int FBNQ(int month){
if (month==1 || month == 2){
return 1;
}
return FBNQ(month-1)+FBNQ(month-2);
}
//方法二:for循环
public static long getSum(int month)
{
if(month == 1 || month == 2){
return 1;
}
int sum = 0;
int mo1 = 1;
int mo2 = 1;
for(int i = 3;i <= month;i++){
sum = mo1 +mo2;
mo1 = mo2;
mo2 = sum;
}
return sum;
}
}
斐波那契数列的java较简单的两种解法
最新推荐文章于 2024-08-06 10:22:43 发布