欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

javascript 水仙花

馮子軒1年前7瀏覽0評論

Javascript中的水仙花問題是廣受程序員喜愛的一個經典算法問題。所謂水仙花數,指的是一個三位數的各位數字立方和等于本身的數字。例如,153就是一個水仙花數,因為 1^3 + 5^3 + 3^3 = 153。JavaScript中,實現水仙花問題并不難,可以用for循環和if語句實現。

function narcissisticNumber() {
for(let i = 100; i<= 999; i++) {
let firstDigit = Math.floor(i / 100);
let secondDigit = Math.floor(i / 10) % 10;
let thirdDigit = i % 10;
if(Math.pow(firstDigit, 3) + Math.pow(secondDigit, 3) + Math.pow(thirdDigit, 3) === i) {
console.log(i);
}
}
}
narcissisticNumber();

在上述代碼中,我們通過一個for循環遍歷了100到999之間所有的三位數。對于每個數,我們分別計算了它的個位、十位和百位上的數字,然后通過if語句判斷它是否是一個水仙花數。如果是,我們就將它輸出到控制臺上。

為了讓算法更加高效,我們也可以使用字符串來處理每個三位數的各位數字。下面是另一個實現方式:

function narcissisticNumber() {
for(let i = 100; i<= 999; i++) {
let numberString = i.toString();
let numDigits = numberString.length;
let sum = 0;
for(let j = 0; j< numDigits; j++) {
let digit = parseInt(numberString.charAt(j));
sum += Math.pow(digit, numDigits);
}
if(sum === i) {
console.log(i);
}
}
}
narcissisticNumber();

在這個版本的代碼中,我們將每個三位數轉換為字符串,然后通過charAt()方法來獲取每個位上的數字。通過使用一個內部的循環遍歷所有數字,我們計算了數字的立方和。如果這個和等于原始的數字本身,我們就將其輸出到控制臺上。

JavaScript中的水仙花問題表明了對于一個在數學上挑戰性不大的問題,我們可以有多種不同的方式來實現它。無論是使用整數型數組來處理數字的各位,還是使用字符串動態獲取數字,都可以獲得同樣準確的結果。