博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面试题(9)
阅读量:5944 次
发布时间:2019-06-19

本文共 1145 字,大约阅读时间需要 3 分钟。

hot3.png

斐波那契数列

package cn.wangbingan.vip;import java.util.Scanner;/** * 斐波那契数列 *  * @author AK *  */public class Fibonacci {	public static void main(String[] args) {		Scanner scanner = new Scanner(System.in);		System.out.println("Please input this fibonacci n:");		int n = scanner.nextInt(); // 假设输入为大于零的整数		System.out.println("递归实现方式当前值:" + fibonacci(n) + "\n" + "递推实现方式当前值:"				+ fibonacciNormal(n));// 第n项的值		int sum1 = 0;		int sum2 = 0;		for (int i = 1; i <= n; i++) {			sum1 += fibonacci(i);		}		for (int j = 1; j <= n; j++) {			sum2 += fibonacciNormal(j);		}		System.out.println("递归实现方式:" + sum1 + "\n递推实现方式:" + sum2);	}	// 递归实现方式	public static int fibonacci(int n) {		if (n <= 2) {			return 1;		} else {			return fibonacci(n - 1) + fibonacci(n - 2);		}	}	// 递推实现方式	public static int fibonacciNormal(int n) {		if (n <= 2) {			return 1;		}		int n1 = 1, n2 = 1, sn = 0;		for (int i = 0; i < n - 2; i++) {			sn = n1 + n2;			n1 = n2;			n2 = sn;		}		return sn;	}}

输出结果:

Please input this fibonacci n:

6

递归实现方式当前值:8

递推实现方式当前值:8

递归实现方式:20

递推实现方式:20

科普一下:递归算法就是程序的自身调用,但是好像不怎么建议使用,只是小程序使用罢了。还可以解决阶乘,汉诺塔等问题。

转载于:https://my.oschina.net/Tsher2015/blog/505807

你可能感兴趣的文章
5.移植uboot-设置默认环境变量,裁剪,并分区
查看>>
怎样去主动拿一个锁并占有?synchronized关键字即可
查看>>
【重拾Effective Java】一
查看>>
Java中的事务
查看>>
Netty 编解码技术 数据通信和心跳监控案例
查看>>
Linux时间子系统(四) timekeeping
查看>>
快速书写常见的 Kotlin 代码 MD
查看>>
数学老师这样可以快速画出绝对值函数
查看>>
JAVA_SE基础——56.包的创建
查看>>
基于浏览器父子窗口值传递
查看>>
[na]ip数据包格式
查看>>
python geoip2使用
查看>>
Hadoop学习之路(二)Hadoop发展背景
查看>>
hdu 1203 I NEED A OFFER!(01背包)
查看>>
003-RHEL7-Linux系统维护管理命令使用
查看>>
win10 localhost 解析为::1 的解决办法
查看>>
自己动手写一个通用的分页存储过程(适用于多表查询)
查看>>
一次练手实战破解某字典–爆破篇
查看>>
获取当前时间 YYYY-MM-DD
查看>>
从分布式一致性到共识机制(二)Raft算法
查看>>