[Java] 斐波那契数列(混积分)验证时间 →→→→→进入此内容的聊天室

来自 , 2020-02-22, 写在 Java, 查看 147 次.
URL http://www.code666.cn/view/a63fc8c5
  1. public class TestMethod3 {
  2.         public static void main(String[] args) {
  3.                 //提出项数:n
  4.                 int n=47;
  5.                
  6.                 //循环
  7.                 long startTime=System.currentTimeMillis();
  8.                 int num1=0;//numn的前前项
  9.                 int num2=1;//numn的前一项
  10.                 int numn=1;//numn--->从第三项开始的每个数用numn接收
  11.                 //第三项:
  12.                 numn=num1+num2;        
  13.                 for(int i=4;i<=n;i++){//i从第4项到第47项,之后的项就会溢出,超过int类型的表数范围,变成负数!
  14.                         num1=num2;
  15.                         num2=numn;
  16.                         numn=num1+num2;
  17.                 }
  18.                 System.out.println(numn);
  19.                 long endTime=System.currentTimeMillis();
  20.                 System.out.println("循环用的时间:"+(endTime-startTime));
  21.                 //第二种方式:递归
  22.                 long startTime2=System.currentTimeMillis();
  23.                 System.out.println(getFibo(n));
  24.                 long endTime2=System.currentTimeMillis();
  25.                 System.out.println("递归用的时间:"+(endTime2-startTime2));
  26.         }
  27.        
  28.         //算出第n项对应的数
  29.         public static int getFibo(int n){
  30.                 if(n==2){
  31.                         return 1;
  32.                 }
  33.                 if(n==1){
  34.                         return 0;
  35.                 }
  36.                 return getFibo(n-1)+getFibo(n-2);
  37.         }
  38.        
  39.        
  40. }      

回复 "斐波那契数列(混积分)验证时间"

这儿你可以回复上面这条便签

captcha