js中怎么判斷一個(gè)整數(shù)是不是回文數(shù)

這篇文章主要介紹了js中怎么判斷一個(gè)整數(shù)是不是回文數(shù),具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到六安網(wǎng)站設(shè)計(jì)與六安網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類(lèi)型包括:網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊(cè)、網(wǎng)頁(yè)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋六安地區(qū)。

前言

判斷一個(gè)整數(shù)是否是回文數(shù)?;匚臄?shù)是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數(shù)。

例如:

121,是回文數(shù)。
1221, 是回文數(shù)。
1234,不是回文數(shù)。
-121,也不是回文數(shù)。

一些特殊的情況:

  • 0-9的數(shù)字,都可以稱(chēng)為回文。

  • 不等于0,且尾數(shù)是0的數(shù)字,都不是回文。

  • 負(fù)數(shù)都不是回文。

1. 字符串的轉(zhuǎn)換

1.1 簡(jiǎn)單點(diǎn),使用高階函數(shù)來(lái)完成

思路: 先將數(shù)字轉(zhuǎn)成字符串A,再經(jīng)過(guò)變成數(shù)組,數(shù)組反轉(zhuǎn),數(shù)組變成字符串B三步操作之后,比較字符串A和B,得出結(jié)論。

/**
 * @param {number} x
 * @return {boolean}
 */
var isPalindrome = function(x) {
  if ( x < 0 ) return false
  let str = '' + x
  return Array.from(str).reverse().join('') === str
};

1.2 從后往前循環(huán)字符串?dāng)?shù)組

思路:將數(shù)字轉(zhuǎn)換成字符串A,從后往前循環(huán)字符串A,將循環(huán)出來(lái)的字符拼接成新的字符串B,比較字符串A和B,得出結(jié)論。

/**
 * @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 以中間數(shù)為節(jié)點(diǎn),判斷左右兩邊首尾是否相等

/**
 * 以中間數(shù)為節(jié)點(diǎn),判斷左右兩邊首尾是否相等
 * @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 = '' + x
  for(let i = 0 ; i < x.length/2; i++) {
    if (x[i] !== x[x.length - i - 1]) {
      return false
    }
  }
  return true
};

2. 數(shù)字轉(zhuǎn)換

2.1 求模得尾數(shù),除10得整數(shù)

思路: 先判斷一些特殊情況【小于0的、尾數(shù)為0的、小于10的正整數(shù)】。之后,將整數(shù)反轉(zhuǎn),反轉(zhuǎn)前后兩個(gè)整數(shù)是否相等來(lái)判斷是否為回文整數(shù)。

這里的反轉(zhuǎn):將整數(shù)求模得到尾數(shù),之后每求一次模,都再原數(shù)上添加一位(通過(guò)*10來(lái)得到),這樣就能得到一個(gè)反轉(zhuǎn)的數(shù)。

計(jì)算需要求模的次數(shù): 將整數(shù)除10,來(lái)計(jì)算求模的次數(shù)。Math.floor() 返回小于或等于一個(gè)給定數(shù)字的最大整數(shù)。

/**
 * 求模得尾數(shù),除10得整數(shù)
 * @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 = x
  let num = 0
  while(x !== 0) {
    num = x % 10 + num * 10
    x = Math.floor(x / 10)
  }
  return y === num
};

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“js中怎么判斷一個(gè)整數(shù)是不是回文數(shù)”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

當(dāng)前文章:js中怎么判斷一個(gè)整數(shù)是不是回文數(shù)
分享路徑:http://muchs.cn/article0/pisjoo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站企業(yè)網(wǎng)站制作、小程序開(kāi)發(fā)、域名注冊(cè)、商城網(wǎng)站網(wǎng)站營(yíng)銷(xiāo)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

小程序開(kāi)發(fā)