JAVA基本算法面试题:1斐波纳契数列

开始学习JAVA,基础知识恶补!

斐波纳契数列,又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*)。

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

以下是Java代码实现(递归与递推两种方式):

import java.util.Scanner;
public class Fibonacci {

public static void main(String[] args) {
System.out.println("请输入数字");
Scanner in = new Scanner(System.in);
int n = in.nextInt();

System.out.println("递归:第"+n+"个数是:"+fibonacci1(n));
System.out.println("递推:第"+n+"个数是:"+fibonacci2(n));
}

// 递归实现方式
public static int fibonacci1(int n){
if(n<=0){
return 0;
}
else if(n<=2){
return 1;
}
else{
return(fibonacci1(n-1)+fibonacci1(n-2));
}
}
public static int fibonacci2(int n){
if(n<=0){
return 0;
}
else if(n<=2){
return 1;
}
else{
int temp=0,num1=1,num2=1;
for(int i=3;i<=n;i++){
temp=num1+num2;
num1=num2;
num2=temp;
}
return temp;

}
}
}

欢迎交流!

 

posted on 2015-01-20 13:31  外星人David  阅读(224)  评论(0编辑  收藏  举报

导航