水仙花数的几种写法

什么是水仙花数?

所谓的水仙花数是指:一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。
就拿153来说


image.png

满足上面的条件就是水仙花数,否则就不是。在编写代码的过程中,重点是如何分解,如何表达出数字中的个位,十位,百位等。

第一种
在这里定义三个整型变量,这里的n代表数字的值,用a,b,c来分别表示该数n的个位,十位,百位。则可得:

   a = n%10; // 分解出个位
    b = n/10%10; // 分解出十位 
    c = n/100; // 分解出百位

例题:在这里我编程实现求100~1000中的所有水仙花数。

var a, b, c;
   for (i = 100; i < 1000; i++) {
       var a = parseInt(i % 10); //个位数
       var b = parseInt((i / 10) % 10); //十位数
       var c = parseInt(i / 100); //百位数
       if (a * a * a + b * b * b + c * c * c == i) {
         document.write(i + "是水仙花数" + "
"); } }

第二种写法

  for(var b = 1; b <= 9; b++){      //百位数
          for(var s = 0; s <= 9 ; s++){    //十位数
              for(var g=0; g<=9; g++){       //个位数
                 if(b * b * b + s * s * s + g * g * g == g*1+s*10+b*100 ){
                    console.log(b,s,g);
                 }
              }
          }
      }

编译执行该代码,便可得出100~1000中所有的水仙花数分别为:


image.png

你可能感兴趣的:(水仙花数的几种写法)