水仙花数的几种写法

什么是水仙花数?

所谓的水仙花数是指:一个 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 + "是水仙花数" + "<br/>");
       }
     }

第二种写法

  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
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容