前端面試(算法篇) - 水仙花數

1、面試題面試

問:你知道水仙花數吧?函數

答:水仙?我對花不是很瞭解啊...spa

問:不是水仙花!是水仙花數,也就是三位數的自冪數。code

答:emmmmmmmmblog

問:看來是不知道了。若是一個三位數,它每一個位上的數字的 3 次冪之和等於它自己,那麼這個數就是一個水仙花數。字符串

答:額...能舉個例子麼?
it

問:好比 153 這個數,1^3 + 5^3+ 3^3 = 153,因此 153 就是一個水仙花數。io

答:嗯嗯,我明白了。console

問:好,那寫一個函數,返回全部的水仙花數。function

答:no problem

 

2、水仙花數

水仙花數是自冪數中的一種,自冪數是指一個 n 位數,它的每一個位上的數字的 n 次冪之和等於它自己

當這個 n=3 的時候,這個自冪數也被稱爲水仙花數

與水仙花數相似的還有四葉玫瑰數(n=4)、五角星數(n=5)等等

// 判斷是否爲自冪數
function isSelfPower(num) { // 將數字轉爲字符串
    let n = num.toString(); let len = n.length; // 分割字符串
    let content = n.split(''); // 初始化三位數之和
    let sum = 0

    for (let i of content) { // 累加每位數的的 len 次冪
        sum += Math.pow(i, len) } return sum == num } (function (){ let arr = [] for (let i = 100; i < 1000; i++) { isSelfPower(i) && arr.push(i) } console.log('水仙花數有:', arr) })()
相關文章
相關標籤/搜索