在Java中存储1000位数字的最佳数据类型是什么?

4

我是一个新手,正在尝试使用Java来解决欧拉问题。我有一个1000位数,最好的数据类型是什么?

抱歉,各位。我没想到答案会这么快。感谢大家:) 可以有人写一段代码,展示如何使用 BigInteger 数据类型声明这个整数吗?

73167176531330624919225119674426574742355349194934
96983520312774506326239578318016984801869478851843
85861560789112949495459501737958331952853208805511
12540698747158523863050715693290963295227443043557
66896648950445244523161731856403098711121722383113
62229893423380308135336276614282806444486645238749
30358907296290491560440772390713810515859307960866
70172427121883998797908792274921901699720888093776
65727333001053367881220235421809751254540594752243
52584907711670556013604839586446706324415722155397
53697817977846174064955149290862569321978468622482
83972241375657056057490261407972968652414535100474
82166370484403199890008895243450658541227588666881
16427171479924442928230863465674813919123162824586
17866458359124566529476545682848912883142607690042
24219022671055626321111109370544217506941658960408
07198403850962455444362981230987879927244284909188
84580156166097919133875499200524063689912560717606
05886116467109405077541002256983155200055935729725
71636269561882670428252483600823257530420752963450
4个回答

9
BigInteger myBigInteger = new BigInteger("7316717653133062491922511967442657474235534919493496983520312774506326239578318016984801869478851843858615607891129494954595017379583319528532088055111254069874715852386305071569329096329522744304355766896648950445244523161731856403098711121722383113622298934233803081353362766142828064444866452387493035890729629049156044077239071381051585930796086670172427121883998797908792274921901699720888093776657273330010533678812202354218097512545405947522435258490771167055601360483958644670632441572215539753697817977846174064955149290862569321978468622482839722413756570560574902614079729686524145351004748216637048440319989000889524345065854122758866688116427171479924442928230863465674813919123162824586178664583591245665294765456828489128831426076900422421902267105562632111110937054421750694165896040807198403850962455444362981230987879927244284909188845801561660979191338754992005240636899125607176060588611646710940507754100225698315520005593572972571636269561882670428252483600823257530420752963450");

8

或字符串,取决于你要解决的问题 :) - Cory Kendall
我不知道你可以在SO上输入一个单词(或看起来像一个单词)的回答。尽管如此,“BigInteger”是正确的答案 :) - paulsm4
@jpm,cory kendall,paulsm 谢谢大家:) - optimalLight
1
@paulsm4 我猜它是检查填充空格,但“.......................”对过滤器来说太聪明了 :) - Cory Kendall

1
实际上,我也在那个问题中使用了BigInteger:
Scanner scan = new Scanner(System.in);
// storing the line as a String
String temp = scan.nextLine();
BigInteger bigInt= new BigInteger(temp);

// 有一件事情需要注意,就是当你加上两个 BigInteger 时:

// 假设你有 firstNumber 和 secondNumber,那么它将会是这样的:

firstNumber.add(secondNumber);

1

BigInteger 能够存储任意大小的整数(即非分数数字)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接