首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何检查一个数字是否为回文?

如何检查一个数字是否为回文?
EN

Stack Overflow用户
提问于 2008-10-13 22:10:39
回答 49查看 226.7K关注 0票数 133

如何检查一个数字是否为回文?

任何语言。任何算法。(除了将数字变为字符串,然后反转字符串的算法除外)。

EN

回答 49

Stack Overflow用户

回答已采纳

发布于 2008-10-13 22:14:31

这是one of the Project Euler problems。当我在Haskell中解决这个问题时,我完全按照你的建议做了,把数字转换成字符串。然后,很容易就可以检查字符串是不是一个Pallindrom型字符串。如果它表现得足够好,那么为什么还要费心让它变得更复杂呢?作为一个pallindrome是一种词汇属性,而不是数学属性。

票数 135
EN

Stack Overflow用户

发布于 2008-10-13 22:18:20

对于任何给定的数字:

代码语言:javascript
复制
n = num;
rev = 0;
while (num > 0)
{
    dig = num % 10;
    rev = rev * 10 + dig;
    num = num / 10;
}

如果为n == rev,则num为回文:

代码语言:javascript
复制
cout << "Number " << (n == rev ? "IS" : "IS NOT") << " a palindrome" << endl;
票数 276
EN

Stack Overflow用户

发布于 2008-10-13 22:26:14

代码语言:javascript
复制
def ReverseNumber(n, partial=0):
    if n == 0:
        return partial
    return ReverseNumber(n // 10, partial * 10 + n % 10)

trial = 123454321
if ReverseNumber(trial) == trial:
    print("It's a Palindrome!")

仅适用于整数。从问题陈述中并不清楚是否需要考虑浮点数或前导零。

票数 24
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/199184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档