Java_斐波那契数列_兔子生兔子算法

举报
红目香薰 发表于 2022/01/24 22:31:55 2022/01/24
【摘要】 ​斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368……特别指出:第0项是0,第1项是第一个1。这个数列从第三项开始,每一项都等于前两项之和。请方法一、基础循环写法 package test;/** *...

斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368……

特别指出:第0项是0,第1项是第一个1。

这个数列从第三项开始,每一项都等于前两项之和。

方法一、基础循环写法 

package test;
/**
 * 
 * @author laoshifu
 * 2021年12月8日
 */
public class Action {
	public static void main(String[] args) {
		int zero=0;
		int one=1;
		int two=1;
		//注:从1月份开始有数值,故而从1开始
		for (int i = 1; i < 10; i++) {
			two=zero+one;
			zero=one;
			one=two;
		}
		System.out.println(two);
	}
}

方法二、递归写法

package test;
/**
 * 
 * @author laoshifu
 * 2021年12月8日
 */
public class Action {
	public static void main(String[] args) {
		System.out.println(dfs(10));
	}
	public static int dfs(int i){
		if(i==0){
			return 0;
		}
		if(i==1||i==2){
			return 1;
		}
		return dfs(i-1)+dfs(i-2);
	}
}

结果是一样的。

效率对比:测试数据【45】

循环消耗时间:

递归消耗时间:

 很明显,这类操作不适合用递归操作。

希望能大家所帮助。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。