动态编程非常大的数据值

时间:2016-10-01 19:09:46

标签: java types dynamic-programming biginteger

  import java.io.*;
 import java.util.*;

 public class Solution {

public static void main(String[] args) {
    /* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */

    Scanner s= new Scanner(System.in);
    int t1=s.nextInt();
    int t2= s.nextInt();
    int n= s.nextInt();
    double arr[]= new double[20];
    for(int i=0;i<20;i++){
    arr[i]=-1;

    }
    arr[1]= t1;
    arr[2]=t2;

    if(arr[n]!=-1){
        System.out.println((long)arr[n]);
    }

    else{
        for(int i=3;i<=n;i++){
           arr[i]= arr[i-2] + Math.pow(arr[i-1],2);
        }
        System.out.println((long)arr[n]);
    }



}
    }

此代码是经过修改的Fibonacci系列。我想计算这个序列中的第十位数。但结果非常大我想问一下我应该把答案放在哪种类型?我用了很久但失败了......请建议任何其他类型......

1 个答案:

答案 0 :(得分:1)

这种计算有一种称为BigInteger的特殊类型。查找更多信息here

修改

您可以从BigInteger

创建String
BigInteger bigInt = new BigInteger("24");

或来自整数类型

BigInteger fromInt = BigInteger.valueOf(24);