每日codewars題之判斷一個數是不是水仙花數

題目

一個水仙花數是一個數字這是它本身的數字的總和,在每個給定的基地升高到的位數的功率。在這個Kata中,咱們將本身限制爲十進制(基數爲10)。javascript

例如,取153(3位數):java

1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153
複製代碼

和1634(4位數):數組

1^4 + 6^4 + 3^4 + 4^4 = 1 + 1296 + 81 + 256 = 1634
複製代碼

挑戰:bash

您的代碼必須返回true或false具體取決於給定數字是否爲基數10中的Narcissistic數字。函數

不須要檢查文本字符串或其餘無效輸入的錯誤,只有有效的整數將傳遞給函數。ui

解題方法及思路

使用Math.pow方法對數字的每一位進行冪運算,而後判斷每一位冪運算以後的和是否等於傳入的數字this

const narcissistic = value => {
  let arr = [...value.toString()] // 註解1
  return arr.reduce((pre, cur) => pre += Math.pow(parseInt(cur), arr.length), 0) === value // 註解2
}
複製代碼
  • 註解1: 把數字轉成字符串(調用Number.toString()方法),而後使用擴展運算符將其按每位分割成一個數組spa

  • 使用reduce方法進行過求和,最後判斷是否等於傳入的數字code

總結

題目地址: Does my number look big in this?ip

相關文章
相關標籤/搜索