首页 > 编程语言 >算法:寻找自幂数(JS)

算法:寻找自幂数(JS)

时间:2023-10-07 16:24:39浏览次数:41  
标签:sum 打印 findHarmonicNumbers JS 算法 num result 水仙花 自幂

寻找自幂数

*打印所有的3位自幂数,即水仙花数; *打印所有的4位自幂数,即四叶玫瑰数; *打印所有的5位自幂数,即五角星数; 提示1:自幂数是指一个n位数,他的每个位上的数字的n次幂之和等于它本身; 提示2:153是一个水仙花数,是因为 153 = 1^3 + 5^3 + 3^3。
 1 function findHarmonicNumbers(start, end, n) {
 2     let result = []; // 创建一个空数组用于存储结果
 3     for (let i = start; i <= end; i++) {
 4         let sum = 0; // 初始化求和变量为0
 5         let num = i; // 将当前迭代的数赋值给变量num
 6         while (num > 0) { // 当num大于0时执行循环
 7             let digit = num % 10; // 取num的个位数(余数)
 8             sum += Math.pow(digit, n); // 将个位数的n次方加到sum上
 9             num = Math.floor(num / 10); // 将num除以10向下取整,相当于去掉个位数
10         }
11         if (sum === i) { // 如果sum等于原来的数i,则说明满足条件
12             result.push(i); // 将满足条件的数添加到结果数组中
13         }
14     }
15     return result; // 返回结果数组
16 }
17 
18 // 打印 3 位水仙花数
19 console.log(findHarmonicNumbers(100, 999, 3));
20 
21 // 打印 4 位四叶玫瑰数
22 console.log(findHarmonicNumbers(1000, 9999, 4));
23 
24 // 打印 5 位五角星数
25 console.log(findHarmonicNumbers(10000, 99999, 5));

代码解释:

代码注释解释了函数的功能和逻辑。首先,定义了一个名为findHarmonicNumbers的函数,该函数接收三个参数:起始数start、结束数end和指数n。函数内部创建一个空数组result用于存储结果。然后,使用for循环从起始数start迭代到结束数end,在每次迭代中,对当前数i进行水仙花数、四叶玫瑰数或五角星数的判断。使用while循环依次取出i的每一位数字,并将其的n次方加到sum上。最后判断sum是否等于原来的数i,如果满足条件,则将i添加到结果数组result中。最后,通过console.log打印输出三种特殊数的结果,分别为3位水仙花数、4位四叶玫瑰数和5位五角星数。

标签:sum,打印,findHarmonicNumbers,JS,算法,num,result,水仙花,自幂
From: https://www.cnblogs.com/anzhizhumo/p/17746588.html

相关文章

  • 算法:判断平年和闰年(JS)
    判断平年和闰年要求:用户输入年份,如果该年是闰年,则打印"xxxx年是闰年",否则打印"xxxx是平年"  提示1:符合以下任何一个条件,该年就是闰年,否则就是平年  *该年能被400整除;  *该年能被4整除且不能被100整除  提示2:使用prompt()  提示3:用parseInt()1functi......
  • 算法3:车羊门问题(JS)
    任务三:车羊门问题车羊门问题”,也被称为‘三门问题、“玛丽莲问题”,是一个在电视节目上获取奖品的游戏,经常在互联网上引起争论,已经持续了几十年时间。现在要求你编写程序,得出科学的结论,以平息这场争论。该游戏的具体规则和争论点,请同学们自行在抖音等平台上搜索了解,了解清楚了再......
  • 算法1:寻找完数(JS)
    任务一:寻找完数打印10000以内的完数完数:与自己所有因子之和相等的数。1letsum=0,i,j;//定义变量sum、i和j23for(i=1;i<10000;i++){4sum=0;//初始化sum为05letfactors=[];//存储因子的数组67//寻找i的因子并计算它......
  • LVS调度算法总结
     ipvsscheduler:根据其调度时是否考虑各RS当前的负载状态,分为两种:静态方法和动态方法静态方法:仅根据算法本身进行调度1、RR:roundrobin,轮询。较常用2、WRR:WeightedRR,加权轮询。较常用3、SH:SourceHashing,实现sessionsticky,源IP地址hash。将来自于同一......
  • nginx负载均衡中常见的算法及原理有哪些?
     #1)轮询(round-robin) 轮询为负载均衡中较为基础也较为简单的算法,它不需要配置额外参数。假设配置文件中共有台服务器,该算法遍历服务器节点列表,并按节点次序每轮选择一台服务器处理请求。当所有节点均被调用过一次后,该算法将从第一个节点开始重新一轮遍历。 特点:由于......
  • Lnton羚通视频分析算法开发平台监控区域自动识别人员闯入行为 危险区域闯入算法预警系
    Lnton羚通的算法算力云平台是一款卓越的解决方案,具备出众的特点。它提供高性能、高可靠性、高可扩展性和低成本的优势,使用户能够高效地执行复杂计算任务。此外,该平台还提供广泛的算法库和工具,并支持用户上传和部署自定义算法,以增强平台的灵活性和个性化能力。危险区域闯入识别预警......
  • ClickHouse选择正确的join算法
    支持的JOIN类型 JOIN算法概览clickhouse提供了6种JOIN算法:1.直接连接(Directjoin)2.哈希连接(Hashjoin)3.并行哈希连接(Parallelhashjoin)4.优雅哈希连接(Gracehashjoin)5.全排序合并连接(Fullsortingmergejoin)6.部分合并连接(Partialmergejoin) 这......
  • 输入若干个数值存入数组中,采用冒泡算法进行升序或降序排序
    [12:38:09root@centos8~]#bashsort.shbeforesort:1475626459133973060324422175901602255661082520888121022092421146668557255975852542867817400aftersort:3060328678264592442220888175901740016022147561339711466108259758924272......
  • 探索程序员需要掌握的算法?
    文章目录一:引言二:常见算法介绍三:重点算法总结......
  • Node.js Assertion API All In One
    Node.jsAssertionAPIAllInOneNode.js断言API严格模式Instrictassertionmode,non-strictmethodsbehaveliketheircorrespondingstrictmethods.Forexample,assert.deepEqual()willbehavelikeassert.deepStrictEqual().在严格断言模式下,非严格方法的行......