斐波那契数列java兔子求和

阅读: 评论:0

斐波那契数列java兔子求和

斐波那契数列java兔子求和

今天看到一道算法题,算了半天没算出来,后来查了资料,原来这是一道关于斐波那契数列题目,题目是:

有 一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少对?)

我开始的思路是先把每个月的兔子数列出来

f1 =1;

f2 =1;

f3 = f2+1=2;

f4 = f3+1=3;

f5 = f4+1+1=5;

f6 = f5+1+1+1=8;

f7 = f6+1+1+1+1+1=13

…… (一直循环下去)

这样的话规律就来了

1.f3 = f1+f2;

2.f4=f2+f3;

3.f5 =f3+f4;

……

从第三项起,每一项都等于前两项的和;

实现两数相加,然后就是前两个数进行互换,然后我写了那么一段代码

public class Suanfa1{

public static void main(String [] args){

int f1 =1;

int f2=1;

int c; // 设一个中间变量

int M=12;

for(int i =3;i<=M;i++){

c = f2;

f2= f1+f2;

f1=c; //对a.b值进行互换

System.out.println("第"+i+"个月的兔子数为:"+f2+"对");

}

}

}

运行结果如下:

第3个月的兔子数为:2对

第4个月的兔子数为:3对

第5个月的兔子数为:5对

第6个月的兔子数为:8对

第7个月的兔子数为:13对

第8个月的兔子数为:21对

第9个月的兔子数为:34对

第10个月的兔子数为:55对

第11个月的兔子数为:89对

第12个月的兔子数为:144对

之后我舍友看了代码之后说代码可以更加简化,然后他用了如下这个算法把循环体内的运算式化成了只剩两条,他的算法是这样的:

public class Suanfa1{

public static void main(String [] args){

int now =1;

int last =0;

int M=12; // 设置时间为一年

for(int i =1;i<=M;i++){

System.out.println("第"+i+"个月的兔子数为:"+now+"对");

now+=last;

last =now-last;

}

}

}

运行结果如下:

第1个月的兔子数为:1对

第2个月的兔子数为:1对

第3个月的兔子数为:2对

第4个月的兔子数为:3对

第5个月的兔子数为:5对

第6个月的兔子数为:8对

第7个月的兔子数为:13对

第8个月的兔子数为:21对

第9个月的兔子数为:34对

第10个月的兔子数为:55对

第11个月的兔子数为:89对

第12个月的兔子数为:144对

本文发布于:2024-02-04 16:15:15,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170711421857121.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数列   兔子   java
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23