水仙花数是指一个 n 位数(n≥3),它的每个位上的数字的 n 次幂之和等于它本身。我们可以通过将一个数拆解为各个位数,然后判断其符合水仙花数的条件即可。以下是具体的解决方案:
function isNarcissisticNumber(num) { var strNum = num.toString(); var n = strNum.length; var sum = 0; for (var i = 0; i < n; i++) { var digit = parseInt(strNum.charAt(i)); sum += Math.pow(digit, n); } return sum === num; } // 测试水仙花数 for (var num = 100; num <= 999; num++) { if (isNarcissisticNumber(num)) { console.log(num + " 是水仙花数"); } }
解决思路:
创建一个名为 isNarcissisticNumber 的函数,用于判断给定的数 num 是否为水仙花数。函数的实现思路如下:
1、将数转换为字符串,以便逐位操作。
2、获取数的长度,存储在变量 n 中。
3、初始化变量 sum 为 0,用于累加每个位数的 n 次幂。
4、使用循环遍历数的每一位:
将当前位的字符转换为整数。
将当前位的 n 次幂加到 sum 中。
5、判断 sum 是否等于 num,如果相等,则说明是水仙花数,返回 true;否则,返回 false。
在示例代码中,通过一个循环遍历从 100 到 999 的所有三位数,调用 isNarcissisticNumber 函数判断这些数是否为水仙花数,并在控制台打印出结果。
以上是一个使用JavaScript判断水仙花数的示例代码。在示例中,我们定义了一个函数来判断一个数是否为水仙花数,并通过遍历所有三位数进行测试。运行代码时,会输出符合水仙花数条件的数。