[java]代码库
public class TestMethod3 {
public static void main(String[] args) {
//提出项数:n
int n=47;
//循环
long startTime=System.currentTimeMillis();
int num1=0;//numn的前前项
int num2=1;//numn的前一项
int numn=1;//numn--->从第三项开始的每个数用numn接收
//第三项:
numn=num1+num2;
for(int i=4;i<=n;i++){//i从第4项到第47项,之后的项就会溢出,超过int类型的表数范围,变成负数!
num1=num2;
num2=numn;
numn=num1+num2;
}
System.out.println(numn);
long endTime=System.currentTimeMillis();
System.out.println("循环用的时间:"+(endTime-startTime));
//第二种方式:递归
long startTime2=System.currentTimeMillis();
System.out.println(getFibo(n));
long endTime2=System.currentTimeMillis();
System.out.println("递归用的时间:"+(endTime2-startTime2));
}
//算出第n项对应的数
public static int getFibo(int n){
if(n==2){
return 1;
}
if(n==1){
return 0;
}
return getFibo(n-1)+getFibo(n-2);
}
}