斐波那契(Fobonacci)数列的第1和第2个数分别为1和1,从第三个数开始,每个数等于
其前两个数之和(1,1,2,3,5……)
实现1:
public static Integer fobonacci(Integer n){
if(n<0||n==0){
System.out.println("参数必须大于0");
return 0;
}
if(n==1||n==2){
return 1;
}
Integer first = 1;
Integer second = 1;
Integer result = 0;
for(int i=3;i<=n;i++){
result = first+second;
first = second;
second = result;
}
System.out.println("n=="+n+":result="+result);
return result;
}
实现2:
public static Integer fobonacci(int n) {
if (n == 0) {
return 0;
} else if (n == 1) {
return 1;
}
return fobonacci(n - 1) + fobonacci(n - 2);
}
变种1:输出前20个数,每6个数一行
public static Integer fobonacci(Integer n){
if(n<0||n==0){
System.out.println("参数必须大于3");
return 0;
}
if(n==1||n==2){
return 1;
}
Integer first = 1;
Integer second = 1;
Integer result = 0;
System.out.print(first+","+second+",");
for(int i=3;i<=n;i++){
result = first+second;
System.out.print(result+",");
if(i%6==0){
System.out.println("");
}
first = second;
second = result;
}
System.out.println("\nn=="+n+":result="+result);
return result;
}