处理大量数据

Mea*_*000 1 java largenumber

我有这个问题:

palindrome如果从左到右和从右到左读取它在十进制系统中的表示是相同的,则整数称为a .对于给定K的不超过1000000数字的正整数,写入最大回文的值大于K输出.始终显示数字而不带前导零.输入

第一行包含整数t,测试用例的数量.整数K在下t一行中给出.产量

对于每一个K,输出最小的回文大于K.例

输入:

2
808
2133
Run Code Online (Sandbox Code Playgroud)

输出:

818
2222
Run Code Online (Sandbox Code Playgroud)

我的代码将输入转换为字符串,并评估字符串的任一端,进行相应的调整并向内移动.但是,问题要求它可以采用长达10 ^ 6位的值,如果我尝试解析大数字,我会得到一个数字格式异常,即

Integer.parseInt(LARGENUMBER);
Run Code Online (Sandbox Code Playgroud)

要么

Long.parseInt(LARGENUMBER);
Run Code Online (Sandbox Code Playgroud)

并且LARGENUMBER超出了范围.任何人都可以想到一个解决方案或如何处理这么大的数字?

Mys*_*ial 5

您可以使用BigInteger类来处理这样的大整数.

但是,我不会指望它在如此庞大的尺寸上有效率.因为它仍然使用O(n^2)算法进行乘法和转换.

  • @ Mead3000 BigInteger可以(理论上)处理内存可以处理的数字. (6认同)

San*_*nto 5

想想你现在所做的步骤.你是否看到一些似乎有点多余的东西,因为你要将数字转换为字符串来处理它?