js回文数的四种判断方法
目录
- 1. 字符串的转换
- 1.1 简单点,使用高阶函数来完成
- 1.2 从后往前循环字符串数组
- 1.3 以中间数为节点,判断左右两边首尾是否相等
- 2. 数字转换
- 2.1 求模得尾数,除10得整数
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
例如:
121,是回文数。
1221, 是回文数。
1234,不是回文数。
-121,也不是回文数。
一些特殊的情况:
- 0-9的数字,都可以称为回文。
- 不等于0,且尾数是0的数字,都不是回文。
- 负数都不是回文。
1. 字符串的转换
1.1 简单点,使用高阶函数来完成
思路: 先将数字转成字符串A,再经过变成数组,数组反转,数组变成字符串B三步操作之后,比较字符串A和B,得出结论。
/*** @param {number} x* @return {boolean}*/
var isPalindrome = function(x) {if ( x < 0 ) return falselet str = '' + xreturn Array.from(str).reverse().join('') === str
};
1.2 从后往前循环字符串数组
思路:将数字转换成字符串A,从后往前循环字符串A,将循环出来的字符拼接成新的字符串B,比较字符串A和B,得出结论。
/*** @param {number} x* @return {boolean}*/
var isPalindrome = function(x) {let str = x + ''let newStr = ''for(let len = str.length, i = len - 1; i >= 0 ; i--) {newStr += str[i]}}return newStr === str
};
1.3 以中间数为节点,判断左右两边首尾是否相等
/*** 以中间数为节点,判断左右两边首尾是否相等* @param {number} x* @return {boolean}*/
var isPalindrome = function(x) {if ( x < 0 || (x !== 0 && x % 10 === 0)) {return false} else if ( 0 <= x && x < 10) {return true}x = '' + xfor(let i = 0 ; i < x.length/2; i++) {if (x[i] !== x[x.length - i - 1]) {return false}}return true
};
2. 数字转换
2.1 求模得尾数,除10得整数
思路: 先判断一些特殊情况【小于0的、尾数为0的、小于10的正整数】。之后,将整数反转,反转前后两个整数是否相等来判断是否为回文整数。
这里的反转:将整数求模得到尾数,之后每求一次模,都再原数上添加一位(通过*10来得到),这样就能得到一个反转的数。
计算需要求模的次数: 将整数除10,来计算求模的次数。Math.floor() 返回小于或等于一个给定数字的最大整数。
/*** 求模得尾数,除10得整数* @param {number} x* @return {boolean}*/
var isPalindrome = function(x) {if ( x < 0 || (x !== 0 && x % 10 === 0)) {return false} else if ( 0 <= x && x < 10) {return true}let y = xlet num = 0while(x !== 0) {num = x % 10 + num * 10x = Math.floor(x / 10)}return y === num
};
以上即是回文数的判断方法,如有其它方法,可以补充。
转载于:https://www.cnblogs.com/weiqinl/p/10968659.html
js回文数的四种判断方法相关推荐
- python判断回文数字,Python判断回文数的三种方法实例
需求: 从控制台输入一个五位数,如果是回文数就打印"是回文数",否则打印"不是回文数",例如:11111 12321 12221 "回文"是 ...
- 打印水仙花数oracle,javaScript实现回文数、水仙花数判断和输出斐波那契数列
javaScript实现回文数.水仙花数判断和输出斐波那契数列 发布时间:2020-07-22 01:15:37 来源:51CTO 阅读:422 作者:Cynthia_xie // 判断一个数是不是回 ...
- 回文数java_回文数及JAVA编程判断回文数
自然数中还有一类数被称为回文数.回文数就是一个数的两边对称,如11,121,1221,9339,30203等等.回文数本身倒也没有什么奇特.不过人们发现大多数的自然数,如果把它各位数字的顺序倒置,再与 ...
- 怎样判断计算机硬盘损坏,检测硬盘是否损坏的方法来了,这里有四种判断方法!...
原标题:检测硬盘是否损坏的方法来了,这里有四种判断方法! 大家对硬盘都不陌生,硬盘分固态硬盘与机械硬盘,它们的读取速度与容量都有很大的区别,不过都是可以用来存储系统与重要文件数据的.硬盘损坏是电脑的硬 ...
- 回文字符串的两种判别方法(c语言)
C语言判别回文字符的两种简单方法 文章目录 C语言判别回文字符的两种简单方法 一.回文字符串的概念 二.介绍两种判别回文字符串的方法 1.将需要判别的字符串倒序排列再与原字符串对比 2. 通过指针锁定 ...
- 【Python】判断一个整数是否是回文数的三种方法
方法一:逐位判断 原理: 用一个while循环,将一个数每次都取出首位和末位,判断是否相等,只要有一次不相等退出即可. 回文数的判断条件:加入一个变量位数,如果这个数是奇数,位数为1时,即最中间那一位 ...
- 判断回文数的两种解法
一.首先什么是回文数呢? "回文"是指正读反读都能读通的句子,它是古今中外都有的一种修辞方式和文字游戏,如"我为人人,人人为我"等.在数学中也有这样一类数字有这 ...
- 实现不使用乘、除、取余运算求商和余数及回文数的定义及判断
我们不妨先复习一下小学二年级学过的除法的定义:被除数/除数=商 ,这是我们在小学时经常用到的算法.现在,我们仔细在想一下,除法的本质到底是什么?我们假设一共有12块糖,分给四个小孩,这时你就会浮现出一 ...
- mn之间的回文数c语言,c语言描述回文数的三种算法
题目描述 注意:(这些回文数都没有前导0) 1位的回文数有0,1,2,3,4,5,6,7,8,9 共10个: 2位的回文数有11,22,33,44,55,66,77,88,99 共9个: * 请问:n ...
最新文章
- DEDECMS中Showmsg的用法及参数介绍
- Codeup-问题 C: 最短路径
- python学习高级篇(part6)--内置函数dir
- javascript系列之执行上下文
- TypeScript 官方决定全面采用 ESLint
- 模拟新浪新闻在线聊天功能
- 【cocos2d-x从c++到js】10:JS与C++的交互2——JS与C++的“函数重载”问题
- ll文件显示为?????_关于shell编程中的文件测试简单的操作实例
- chrome老版本_技术周刊 2019-08-06:Chrome 又隐藏了 www
- 交叉火力dsp手机调音软件_可一键调音的车载DSP功放应用
- 课设错误调试(一)No qualifying bean of type
- 在线制作FLASH,图片的网站集合
- 无限复活服务器,绝地求生刺激战场无限复活模式怎么玩 无限复活玩法攻略分享...
- CSS3可爱的100卡通笑脸动画
- vue路由跳转动画_vue怎么给路由切换时添加动画
- 计算机硬盘储存怎么增加,如何扩大存储空间?电脑扩大新添加的硬盘的方法
- 遭七旬叔公欺负长达八年 17岁女孩怀孕5个月
- Java 多线程 卖票
- UVA 12563 Jin Ge Jin Qu hao 01背包变形
- 斯坦福php项目怎么样,科学网—发现自己的论文居然成了斯坦福大学的课程项目 - 杨双的博文...
热门文章
- mysql enterprise backup 使用_mysql enterprise backup入门使用
- 2018蓝桥C++B:煤球数目;生日蜡烛(枚举年龄和枚举次数)
- bzoj 3517: 翻硬币
- 51nod-1422:沙拉酱前缀
- 吴恩达神经网络和深度学习-学习笔记-11-Momentum梯度下降法
- iptable详解概念
- MySQL(一)面试集合
- Core官方DI解析(3)-ServiceCallSite.md
- P1279 字串距离 (动态规划)
- 三.rocketmq-console