首先呢,我们需要知道斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)
代码与注释如下:
package test1;
import java.util.Scanner;
public class fbnq1 {
/*a为第1,2,3,4项*/
public static void main(String[] args) {
Scanner scn=new Scanner(System.in);
System.out.println("请输入项数n");
int n=scn.nextInt();
int value=-1;/*第n项数的值*/
int one=0;/*倒数第一个数,赋初值为0*/
int two=0;/*倒数第二个数,赋初值为0*/
for(int a=1;a<=n;a++) {
if(a==1) {value=0;}
if(a==2) {value=1;}
if(a>2) {
two=one;
one=value;
value=one+two;}
System.out.print(value+" ");
}
}
}
这里如果有if(a>2)后面看不懂的话我举个栗子
斐波那契数列:0,1,1,2,3,5,8,13,21等等,从a>2中拿出4个数,1,2,3 ,5
? ? ? ? ? ? ? ? 1、当value=3,one=2,?two=1 ? ? ? ? ? ? ? ? 2、当value=5,one=3,two=2
此时的two=one=2,one=value=3,这也就是if(a>2){two=one;
one=value;}
|