java学习笔记之斐波那契数列

hello 大家好

今天有个小问题:讲的是在一个小岛上,理想条件下有一对兔子,经过两个月生长后会第三个月开始每个月生殖一对兔子,问个月多少兔子?

通过这个图相信大家理解啦,就是兔子生下来第三个月第一对红的生了一对绿的,绿的长大后第三个月会再生,而第四个月红的又生了一个蓝的,以此类推

看数值变化我们也看到了规律,就是前两天之和是后一天的;

这时候我们就可以下一个方法来实现这个函数

首先我们建一个工程java project 然后点击工程,右击src,new一个class ,在主函数下边写我们的方法

public static void main(String[] args) 
	{
	}
	public static void rabbitNum()
	{
		int moth1=1;//初始化为第一月兔子数量
		int moth2=2;//初始化为第二月兔子数量
		int sum=0;//兔子数量
		int i=3;
		while(i<=30)
		{
			
			sum=moth1+moth2;//前两月之和就是当月兔子数量
			System.out.println("第"+i+"月兔子数量"+sum);
			moth1=moth2;
			moth2=sum;
			i++;
			
		}

  

然后在主函数中写我们调用方法语句:

public static void main(String[] args) 
	{
		Funtion.rabbitNum();
	}

  运行查看我们结果:

我们观察结果,发现和我们想要的一样 在这个函数中我们用的while循环,因为兔子总数用int存储的,这要考虑到int的存储大小,天数超过37好像就不行啦,需要开更大的整型去存储。

我们来写另一个优化的方法,这次我们用for循环写:

public static void rabbitNum2()
	{
		int moth1=1;
		int moth2=2;
		for(int i=3;i<=30;i++)
		{
			moth1=moth1+moth2;
			moth2=moth2+moth1;
			System.out.println("第"+i+"月的兔子数量"+moth1);
			System.out.println("第"+ ++i +"月的兔子数量"+moth2);
		}
	}

  然后写我们调用方法的语句

public static void main(String[] args) 
	{
		//Funtion.rabbitNum();
		Funtion.rabbitNum2();
	}

  这里我们还是把一个语句注释掉,只调用第二种方法:

运行观察结果,你会发现和第一种一样:

这个代码中涉及到了:

++i  是先做自增在进行别的运算,比如此代码中就是先自己加一代表下一天,然后执行被打印出来,如果换成i++就会结果出现重复月,但是数量还是正确,这就是所说的顺序执行问题。

这个代码为啥说优化啦,因为循环次数减少一半,一次循环输出两个月的结果。

转载于:https://www.cnblogs.com/doucunkai/p/7294005.html

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下载 4使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、 4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值