1.水仙花數(shù)的含義:
"水仙花數(shù)"是指一個(gè)三位數(shù)其各位數(shù)字的立方和等于該數(shù)本身。例如153是“水仙花數(shù)”,因?yàn)椋?53 = 13 + 53 + 33。
2、算法分析
根據(jù)“水仙花數(shù)”的定義柳譬,判斷一個(gè)數(shù)是否為“水仙花數(shù)”,最重要的是要把給出的三位數(shù)的個(gè)位续镇、十位美澳、百位分別拆分,并求其立方和(設(shè)為sum)摸航,若sum與給出的三位數(shù)相等人柿, 三位數(shù)為“水仙花數(shù)”,反之忙厌,則不是凫岖。
3、算法設(shè)計(jì)
“水仙花數(shù)”是指滿足某一條件的三位數(shù)逢净,根據(jù)這一信息可以確定整數(shù)的取值范圍是 100?999哥放。對(duì)應(yīng)的循環(huán)條件如下:
for (n=10; n<1000; n++) {
//祝你遍歷山河 覺(jué)得人間值得
}
代碼說(shuō)明:
將n整除以100,得出n在百位上的數(shù)字a爹土。
將n取100的余數(shù)甥雕,除以10得出十位上的數(shù)。
將n取100的余數(shù)胀茵,取10的余數(shù)得出個(gè)位上的數(shù)社露。
求得a,b琼娘,c 三個(gè)數(shù)字的立方和是否與n相等峭弟,如果相等則證明該數(shù)為水仙花數(shù)。
代碼實(shí)現(xiàn)
for (var n = 100; i < 1000; i++) { //整數(shù)的取值范圍
var a = parseInt(n / 100); //找百位數(shù)
var b = parseInt(n % 100 / 10); //找十位數(shù)
var c = parseInt(n % 100 % 10); //找個(gè)位數(shù)
if (a * a * a + b * b * b + c * c * c == n) { //進(jìn)行判斷 /*各位上的立方和是否與原數(shù)n相等*/
console.log(n); //返回結(jié)果
}
}
運(yùn)行結(jié)果:
result :153 370 371 407