“水仙花数”是指一个3位数,其每一位数字的立方和等于该数本身。水仙花数是一种特定的自方幂数。
var sum;
var a,b,c;
var text="";
for (a = 1; a < 10; a++) //第一个数--百位
for (b = 0; b < 10; b++) //第二个数--十位
for (c = 0; c < 10; c++){ //第三个数--个位
//sum来表示这个数的大小
sum = a * 100 + b * 10 + c;
//判断这个数是否等于各位数字的立方和
if (sum == (a ** 3 + b ** 3 + c ** 3)) text += sum + ",";
}
//text来表示出每一个数
document.write(text);
这里求水仙花数用for嵌套循环,每一层分别代表每一位数,用sum表示出这个三位数,之后判断 每一位数字的立方和等于该数本身 ,如果是,则输出。
结果:
会求水仙花数,知道了用什么样的方法去做,那么不管在算多少位的自方幂数都难不到自己。
自方幂数是指:一个n位正整数,如果这个数等于它的n个数字的n次方和,该数称为n位自方幂数。
同理,可根据求水仙花数的方法来求出每一位的自方幂数。
var sum;
var a,b,c,d,e,f;
var text1="",text2="",text3="";
for (a = 1; a < 10; a++) {
for (b = 0; b < 10; b++) {
for (c = 0; c < 10; c++) {
for (d = 0; d < 10; d++) {
//四位自方幂数
sum = a * 1000 + b * 100 + c * 10 + d;
if (sum == (a ** 4 + b ** 4 + c ** 4 + d ** 4)) {
text1 += sum + ",";
}
for (e = 0; e < 10; e++) {
//五位自方幂数
sum = a * 10000 + b * 1000 + c * 100 + d * 10 + e;
if (sum == (a ** 5 + b ** 5 + c ** 5 + d ** 5 + e ** 5)) {
text2 += sum + ",";
}
for (f = 0; f < 10; f++) {
//六位自方幂数
sum = a * 100000 + b * 10000 + c * 1000 + d * 100 + e * 10 + f;
if (sum == (a ** 6 + b ** 6 + c ** 6 + d ** 6 + e ** 6 + f ** 6)) {
text3 += sum + ",";
}
}
}
}
}
}
}
//text来表示出每一个数
document.write(text1);document.write("<br>");
document.write(text2);document.write("<br>");
document.write(text3);
结果:
四位自方幂数又称玫瑰花数
五位五角星数
六位六合数