c++ - 如果给定一个 15 位数字,找到下一个回文的最佳方法是什么?

标签 c++ algorithm palindrome

在 C++ 中,找到给定 15 位数字的下一个回文的最快逻辑是什么?例如:134567329807541 的下一个回文是什么?

最佳答案

  • 将数字分成三部分,headmidtail

    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/

相关文章:

c++ - Qt 设置 QWidget 的默认宽度

algorithm - 偏斜矩阵算法

c++ - 是回文函数

c - C 中的回文递归程序

c++ - QScrollArea 缺少滚动条

c++ - ffmpeg yadif 去隔行

c++ - 我从哪里获得 qm 可执行文件?

c++ - Boost Graph 算法 - 添加约束

c - 非线程安全会增加乘以进位伪随机数生成器的随机性吗?

python - 如何获得给定数字的最接近、最小的回文数