Loading

Heron and His Triangle 递推 高精度 打表 HDU6222

java可做

先用C++打出表发现如下规律:

若n对应答案为x ,则下一个不同答案对应的n为x+1

不同答案的递推关系有  f[n]=4*f[n-1]-f[n-2] ,因此可java秒

import java.util.Scanner;
import java.math.BigInteger;

public class Main {
       public static void main(String[] args) {
           Scanner in=new Scanner(System.in);
           BigInteger[] arr=new BigInteger[300];
           arr[0]=BigInteger.valueOf(4);
           arr[1]=BigInteger.valueOf(14);
           BigInteger x=BigInteger.valueOf(4);
           BigInteger z=BigInteger.valueOf(-1);
           for(int i=2;i<300;i++) {
               arr[i]=arr[i-1].multiply(x);
               BigInteger y=arr[i-2].multiply(z);
               arr[i]=arr[i].add(y);
           }
           int T;
           BigInteger n;
           T=in.nextInt();
           while(T-->0) {
               n=in.nextBigInteger();
               for(int i=0;;i++) {
                   if(n.compareTo(arr[i])<=0) {System.out.println(arr[i]); break;}
               }
           }
           in.close();
       }
}

 

posted @ 2020-03-17 10:41  MQFLLY  阅读(116)  评论(0编辑  收藏  举报