什么是水仙花數(shù)?
所謂的水仙花數(shù)是指:一個(gè) n 位數(shù) ( n≥3 )阵难,它的每個(gè)位上的數(shù)字的 n 次冪之和等于它本身岳枷。
就拿153來(lái)說(shuō)
滿足上面的條件就是水仙花數(shù),否則就不是呜叫。在編寫(xiě)代碼的過(guò)程中空繁,重點(diǎn)是如何分解,如何表達(dá)出數(shù)字中的個(gè)位,十位朱庆,百位等盛泡。
第一種
在這里定義三個(gè)整型變量,這里的n代表數(shù)字的值,用a,b,c來(lái)分別表示該數(shù)n的個(gè)位娱颊,十位傲诵,百位凯砍。則可得:
a = n%10; // 分解出個(gè)位
b = n/10%10; // 分解出十位
c = n/100; // 分解出百位
例題:在這里我編程實(shí)現(xiàn)求100~1000中的所有水仙花數(shù)。
var a, b, c;
for (i = 100; i < 1000; i++) {
var a = parseInt(i % 10); //個(gè)位數(shù)
var b = parseInt((i / 10) % 10); //十位數(shù)
var c = parseInt(i / 100); //百位數(shù)
if (a * a * a + b * b * b + c * c * c == i) {
document.write(i + "是水仙花數(shù)" + "<br/>");
}
}
第二種寫(xiě)法
for(var b = 1; b <= 9; b++){ //百位數(shù)
for(var s = 0; s <= 9 ; s++){ //十位數(shù)
for(var g=0; g<=9; g++){ //個(gè)位數(shù)
if(b * b * b + s * s * s + g * g * g == g*1+s*10+b*100 ){
console.log(b,s,g);
}
}
}
}
編譯執(zhí)行該代碼掰吕,便可得出100~1000中所有的水仙花數(shù)分別為: