JS求三位水仙花数,及自方幂数

  • 水仙花数:

“水仙花数”是指一个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);

结果:
自方幂数
四位自方幂数又称玫瑰花数
五位五角星数
六位六合数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值