我有这个问题:
如果从左向右和从右向左读取时,正整数在十进制中的表示形式相同,则称为palindrome
。对于给定的不超过K
个位数的正整数1000000
,将大于K
的最小回文值写入输出。数字始终显示时不带前导零。
输入项
第一行包含整数t
,即测试用例的数量。整数K
在接下来的t
行中给出。
输出量
对于每个K
,输出比K
大的最小回文。
例
输入:
2
808
2133
输出:
818
2222
我的代码将输入转换为字符串,并评估字符串的任一端,从而进行相应的调整并向内移动。但是,问题要求它可以接受最长10 ^ 6位数的值,如果我尝试解析大数,则会遇到数字格式异常,即
Integer.parseInt(LARGENUMBER);
要么
Long.parseInt(LARGENUMBER);
并且
LARGENUMBER
超出范围。谁能想到解决方法或如何处理这么大的数字? 最佳答案
您可能使用BigInteger类来处理这样的大整数。
但是,我不会指望它能在如此庞大的规模下保持高效。因为它仍然使用O(n^2)
算法进行乘法和转换。