Java中斐波那契数列相关面试题
来源:互联网 发布:外星人学物理2淘宝网 编辑:程序博客网 时间:2024/05/16 15:12
斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=1,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)
题目描述1
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。n<=38
非递归实现方式:
public static int fibonacci(int n) {int result = 0;int a1 = 0;int a2 = 1;if (n < 0 || n > 38) {System.out.println("please correct number");return -1;}if (n == 0) {return 0;} else if (n == 1) {return 1;} else {for (int i = 2; i <= n; i++) {result = a1 + a2;a1 = a2;a2 = result;}}return result;}递归实现方式:
static int result = 0;public static int fibonacciByRecursive(int n) {if (n == 0) {return 0;} else if (n == 1) {return 1;} else {result = fibonacciByRecursive(n - 1) + fibonacciByRecursive(n - 2);}return result;}
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
先简单推理分析下
n=1,solution =1
n=2,solution=2
n=3,solution=3
n=4,solution=5
f(n)=f(n-1)+f(n-2),和斐波那契数列 类似只是f(1)=1,f(2)=2,只需要把上面的稍微改动下即可
public int JumpFloor(int target) { //f(n)=f(n-1)+f(n-2) int result = 0,a1 =1,a2=2; if(target ==1){ return 1; }else if(target ==2){ return 2; }else{ for(int i=3;i<=target;i++){ result=a1+a2; a1 =a2; a2 =result; } return result; } }递归解法类似,就不在贴代码了。
1 0
- Java中斐波那契数列相关面试题
- 斐波那契数列面试题解法(java)
- 面试题斐波那契数列
- 九度剑指Offer面试题9:斐波那契数列(Java题解)
- 剑指offer--面试题9:斐波那契数列--Java实现
- 剑指Offer面试题9(java版)斐波那契数列
- 剑指Offer面试题9(java版):斐波那契数列
- 剑指offer 面试题9 斐波那契数列 java版答案
- 剑指Offer面试题9(java版)斐波那契数列
- 面试题整理-斐波那契数列
- 面试题9:斐波那契数列
- 【面试题九】斐波那契数列
- 【剑指offer】面试题9:斐波那契数列
- 剑指offer 面试题9 斐波那契数列
- 剑指Offer:面试题9 斐波那契数列
- 面试题9 斐波那契数列
- 面试题9:斐波那契数列
- 面试题9 斐波那契数列
- 生日蜡烛
- Synchronized 原理
- unique的用法
- Structured Streaming Programming Guide官方文档再次阅读理解强化学习
- 信用评分
- Java中斐波那契数列相关面试题
- jsp与Javabean实现登录注册
- 海量数据处理
- JavaScript代码规范和性能整理
- 配置vim
- 集中化管理平台saltstack--原理及部署
- ZOJ2812
- Android逆向入门-静态分析技术
- 成员函数的形参 与 成员变量重名