public class Test {
/*
* 斐波那契数列:指的是这样的数列:0,1,1,2,3,5,8,13,21,34..., 这个数列从第三项开始,每一项都等于前两项之和。
* 斐波那契数列又称 黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“ 兔子数列 ”;
*/
//第1种方法:运用方法的递归来实现
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("请输入一个大于0的整数:");
int n=input.nextInt();
System.out.print(n+"位的斐波那契数列:");
for(int i=0;i<n;i++) {
System.out.print(f(i)+" ");
}
}
public static int f(int n) {
if(n==0||n==1) {
return n;
}else {
return f(n-1)+f(n-2);
}
}
}
//第2种方法:运用for循环来实现
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("请输入一个大于0的整数:");
int n=input.nextInt();
int a=0,b=1,c=0;
System.out.print(n+"位的斐波那契数列:");
System.out.print(a+" "+b);
for(int i=2;i<n;i++) {
c=a+b; a=b; b=c;
System.out.print(" "+c);
}
}
//第3种方法:运用数组来实现
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("请输入一个大于0的整数:");
int n=input.nextInt();
System.out.print(n+"位的斐波那契数列:");
int[] arr=new int[n];
arr[0]=0;
arr[1]=1;
for(int i=2;i<n;i++) {
arr[i]=arr[i-1]+arr[i-2];
}
System.out.print(Arrays.toString(arr));
}