在 C++ 中,找到给定 15 位数字的下一个回文的最快逻辑是什么?例如:134567329807541 的下一个回文是什么?
最佳答案
将数字分成三部分,
head
、mid
、tail
1345673 2 9807541
逆向
head
并将其与tail
进行比较 3765431如果
reverse(head) <= tail
(如果它们相等则初始输入是一个回文,而你想要下一个)- 如果
mid < 9
,递增 mid - 否则增加
head
部分并设置mid := 0
- 如果
结果 :=
head mid reverse(head)
。1345673 3 反向(1345673) => 134567333765431
关于c++ - 如果给定一个 15 位数字,找到下一个回文的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1516038/