码迷,mamicode.com
首页 > 编程语言 > 详细

【数据结构与算法】数学——回文数

时间:2020-04-03 10:29:43      阅读:109      评论:0      收藏:0      [点我收藏+]

标签:bool   pre   ref   leetcode   ssi   注意   回文   位置   ble   

回文数

LeetCode:回文数

题目描述:

判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

示例:

输入: 121
输出: true

思想:

  • x%10得到尾数,x/d(d为10的x的位数次方)得到首位数字,比较二者是否相同;
  • 注意:循环条件必须是x>0而不是x>10。当x为个位数时,如果是中心位置必然是true,但如果是1000021这种情况(不是回文数),x最后为2,此时x%10跟x/d不相等需要再判断一轮。

代码:

class Solution {
public:
    bool isPalindrome(int x) {
        if(x<0){
            return false;
        }
        int d = 1,m,n;
        while(x/d>=10) d*=10;
        while(x>0){
            m = x%10;
            n = x/d;
            if(m == n){
                x=(x-m*d)/10;
                d=d/100;
            }else{
                return false;
            }
        }
        return true;
    }
};

【数据结构与算法】数学——回文数

标签:bool   pre   ref   leetcode   ssi   注意   回文   位置   ble   

原文地址:https://www.cnblogs.com/buptleida/p/12624843.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!