打印出所有的 "水仙花數(shù) "铸抑,所謂 "水仙花數(shù) "是指一個(gè)三位數(shù)纱昧,其各位數(shù)字立方和等于該數(shù) 本身要门。例如:153是一個(gè) "水仙花數(shù) "玲献,因?yàn)?53=1的三次方+5的三次方+3的三次方。
用for循環(huán)做:
for (var a = 1; a < 10; a++) {
for (var b = 0; b < 10; b++) {
for (var c = 0; c < 10; c++) {
if (a * a * a + b * b * b + c * c * c == a * 100 + b * 10 + c) {
var sum = a * 100 + b * 10 + c;
document.write(`${sum} <br></br>`)
}
}
}
}
結(jié)果圖為:
解析:
因?yàn)槲覀円胒or循環(huán)來(lái)做這道題才漆,所以我們可以把這個(gè)三位數(shù)看作sum:百分位的數(shù)為a牛曹;十分位數(shù)為:b;個(gè)位數(shù)為:c醇滥。
三位數(shù)的前提是 這三個(gè)數(shù)不能大于10黎比;所以a/b/c都必須小于10;且百分位不能為零鸳玩,所以a=1;
這樣我們就能做出for的循環(huán)阅虫;下面就該if了:
看題就可以得出sum=a * a * a+b * b * b+c * c * c;又因?yàn)閍時(shí)百分位,b為十分位所以sum又等于a * 100 + b *
10 + c
然后我們就可以得出三位數(shù)的所有水仙花數(shù)不跟。
最后我們可以用函數(shù)封裝一下:
function getSum() {
for (var a = 1; a < 10; a++) {
for (var b = 0; b < 10; b++) {
for (var c = 0; c < 10; c++) {
if (a * a * a + b * b * b + c * c * c == a * 100 + b * 10 + c) {
var sum = a * 100 + b * 10 + c;
document.write(`${sum} <br></br>`)
}
}
}
}
return getSum;
}
getSum();