如果给定一个 15 位数字,找到下一个回文的最佳方法是什么?
在 C++ 中,找到给定 15 位数字的下一个回文的最快逻辑是什么?例如: 134567329807541 的下一个回文是什么?
in c++ what will be the fastest logic to find next palindrome of a given 15 digit number? for example what will be the next palindrome of: 134567329807541 ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
将数字分成三部分,
head
、mid
、tail
1345673 2 9807541
反向
head
并将其与tail
进行比较3765431
如果
reverse(head) <= tail
(如果它们相等,则初始输入是回文,并且您需要下一个)中< 9
,增加midhead
部分并设置mid := 0
result :=
head mid reverse(head)
.1345673 3 反向(1345673) => 134567333765431
Split the number into three parts,
head
,mid
,tail
1345673 2 9807541
Reverse
head
and compare it totail
3765431
If
reverse(head) <= tail
( if they are equal the initial input is a palindrome, and you want the next )mid < 9
, increment midhead
part and setmid := 0
result :=
head mid reverse(head)
.1345673 3 reverse(1345673) => 134567333765431
我相信是这样的
I believe it's like this
我不打算实现任何东西,但我想逻辑是:
如果长度不均匀,则需要将中间的数字分开处理。但这是微不足道的。
I am not about to implement anything, but I imagine the logic would be:
If the length is uneven, you need to treat the middle digit separately. But that is quite trivial.
我认为以下算法也应该有效..
实现起来也更容易
希望以下示例将有助于更好地理解算法
let nos be:- 23469 9 12367
required Ans:-
23470 0 07432
如果此过程存在任何缺陷,请告诉我
I think the following algo should also work ..
It is easier to implement also
Hoping that following example will help in better understanding of the algo
let nos be:- 23469 9 12367
required Ans:-
23470 0 07432
Plz do infrom me if there exist any flaw in this procedure