回文数判断

原创 2016年08月29日 20:53:02

问题描述

给一个int,判断是不是回文数。

测试用例

123321 就是

笔记

用到一个比较巧的思路,设置一个tmp,截取x的后一半。一直循环到tmp > x了,如果这时候x与tmp相等(x的位数是偶数,如123321,则此时x=123,tmp=123),又或者x==tmp/10(x的位数是奇数,如121,则此时x=1,tmp=12),则可以说明是回文数。

在这中间还要注意,x不能被10整除,这样的话原来的算法会误判。如x=10,上述程序会误判为是回文数。但其实不是。要剔除这个错误的测试用例。

代码

bool isPalindrome(int x)
{
    int tmp = 0;
    while (x > tmp)
    {
        tmp = tmp * 10 + x % 10;
        if (tmp == 0)
            return false;
        x /= 10;
    }
    return (tmp == x || x == tmp / 10);
}

也可以一开始就直接排出被10整除的特殊用例,但是又要小心,不要把0也排除出去了。0是回文数。

bool isPalindrome(int x)
{
    if (x % 10 == 0 && x != 0)
        return false;
    int tmp = 0;
    while (x > tmp)
    {
        tmp = tmp * 10 + x % 10;
        x /= 10;
    }
    return (tmp == x || x == tmp / 10);
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

回文数的判断(三种方法)

关于回文数的总结。 判断一个数是否是回文数。 回文数判断的几种方法。 回文数的概念:即是给定一个数,这个数顺读和逆读都是一样的。例如:121,1221是回文数,123,1231不是回文数。...
  • deaidai
  • deaidai
  • 2017年05月13日 15:35
  • 2613

Java算法——判断一个数是否是回文数

//回文数:是一种数字。如:98789, 这个数字正读是98789,倒读也是98789 //正读倒读一样,所以这个数字就是回文数 import java.util.Scanner; public ...
  • beyond1123
  • beyond1123
  • 2016年08月10日 21:02
  • 13557

算法分析---回文数判断

有这样一类数字,他们顺着看和倒着看是相同的数,例如:4554,787,1111等,这样的数字就称为:回文数字。 回文数的判断有多种算法,直观一点的就是将数字顺序颠倒后再与原数字进行比较,如果相等说明该...
  • iamgaowei
  • iamgaowei
  • 2014年04月18日 16:43
  • 6157

回文数的判断-Python

#coding=utf-8 def is_palindrome(n): str_n = str(n) return str_n == str_n[-1::-1] #测试o out...
  • hong3088
  • hong3088
  • 2017年03月02日 00:27
  • 615

判断一个数是否回文数的巧妙解法

·回文数的定义: 对于非负数 其左右两边完全相同 则是回文。 e.g: 121 11 等 对于负数 其绝对值左右两边完全相同 则是回文。 e.g: -121 -11 等 设计一个算法...
  • u013575812
  • u013575812
  • 2015年11月25日 00:01
  • 3228

java判断回文数代码实例

import java.util.Scanner; /* * 第三章 java运算符 * 课后作业 判断回文数 * 5.2.1 由用户输入一个整数,判断是不是回文数(完全对称的数),如果是 ...
  • aikongmeng
  • aikongmeng
  • 2013年05月21日 18:21
  • 5722

C语言判断一个数是否是回文数

“回文数“是一种数字。如:98789, 这个数字正读是98789,倒读也是98789,正读倒读一样,所以这个数字就是回文数。 判断一个整数是否是回文数的方法不止一种,最容易想到的一种方法就是: ...
  • sinat_23338865
  • sinat_23338865
  • 2015年12月29日 16:16
  • 2807

判断回文数的两种方法(代码解析)

#include "iostream" using namespace std; //将整数翻转,之后比较,若跟原来的数相等,就是回文数字 //若1234321,倒转之后数字为1234321,相等,就...
  • xue815020462
  • xue815020462
  • 2013年05月24日 10:45
  • 4335

递归判断一个数是不是回文数

回文数就是原数与其倒置后的数相等,如:123321,到之后仍为123321,即为回文数。...
  • johnWcheung
  • johnWcheung
  • 2017年06月01日 10:45
  • 731

判断回文数的函数--c的实现

判断回文数的C语言实现
  • HITyangshuo
  • HITyangshuo
  • 2017年03月07日 20:06
  • 727
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:回文数判断
举报原因:
原因补充:

(最多只允许输入30个字)