牛客网题解-Fibonacci数列

Fibonacci数列
import java.util.*;
public class Main {
    public static int MAX=32;
    public static void main(String args[]){
       Scanner in=new Scanner(System.in);
       int num[]=new int[MAX];  //空间换时间
       num[0]=0;
       num[1]=1;
       for(int i=2;i<MAX;i++){
           num[i]=num[i-1]+num[i-2];
       }
       while(in.hasNext()){
           int n=in.nextInt();
           int Mind=Integer.MAX_VALUE,temp;
           for(int i=0;i<MAX;i++){
               temp=Math.abs(num[i]-n);
               if(Mind>=temp){ //差距会越来越小,当差距变大时,说明上一个就是最小差距
                   Mind=temp;
               }else{
                   System.out.println(Mind);
                   break;
               }
           }
       }
    }
}

猜你喜欢

转载自blog.csdn.net/anhuibozhoushatu/article/details/83893164