javascript经典案例水仙花练习,输入三位数判断是否为水仙花

文章介绍了如何使用JavaScript编程实现水仙花数的判断逻辑,通过获取用户输入的三位数,将其分解为百位、十位和个位,计算每个位上的数字立方后求和,判断是否等于原数,以此确定是否为水仙花数。

 具体的思路如下~

  1. 首先,获取用户输入的数值。
  2. 检查输入的数值是否满足水仙花数的条件,即数值为正整数且大于等于100。
  3. 如果输入的数值满足条件,将其转换为字符串,然后使用字符串的 split 方法将其拆分成单个数字的数组。
  4. 遍历数组中的每个数字,将其转换为整数,并计算其立方值。
  5. 将所有立方值相加,得到一个结果。
  6. 将结果与原始数值进行比较,如果相等则为水仙花数,否则不是水仙花数。
  7. 根据判断结果输出相应的信息。
let number = prompt("请输入一个三位数:");
let sumOfCubes = 0;

if (number >= 100 && number <= 999) { // 检查输入是否为一个三位数
  let digit1 = Math.floor(number / 100); // 获取百位数
  let digit2 = Math.floor((number % 100) / 10); // 获取十位数
  let digit3 = number % 10; // 获取个位数

  sumOfCubes = Math.pow(digit1, 3) + Math.pow(digit2, 3) + Math.pow(digit3, 3);

  if (sumOfCubes === number) {
    console.log(number + " 是水仙花数。");
  } else {
    console.log(number + " 不是水仙花数。");
  }
} else {
  console.log("请输入一个合法的三位数。");
}

希望对你有所帮助!

### 三位数是否水仙花JavaScript 实现 水仙花是指一个三位数,其各位字的立方和等于该本身。例如,153 是水仙花,因为 $1^3 + 5^3 + 3^3 = 153$。判断一个三位数是否水仙花的核心步骤包括:验证输入是否三位数、提取每一位的字、计算立方和,并与原进行比较。 以下是一个完整的 JavaScript 实现: ```javascript var num = parseInt(prompt("请输入一个三位数")); if (num >= 100 && num < 1000) { var a = num % 10; // 个位 var b = parseInt(num / 10) % 10; // 十位 var c = parseInt(num / 100); // 百位 var sum = Math.pow(a, 3) + Math.pow(b, 3) + Math.pow(c, 3); if (sum === num) { alert(num + " 是水仙花"); } else { alert(num + " 不是水仙花"); } } else { alert("输入的不是三位数,请重新输入"); } ``` 在上述代码中,首先使用 `prompt` 获取用户输入,并通过 `parseInt` 将输入转换为整。随后检查输入是否三位数。如果是三位数,则分别提取个位、十位和百位的值,并计算它们的立方和。如果立方和与原相等,则输出“是水仙花”,否则输出“不是水仙花”。如果输入不是三位数,则提示用户重新输入[^1]。 另一种实现方式是通过 `switch` 或 `onblur` 事件处理用户输入,特别是在网页环境中,可以结合 HTML 输入框进行交互式判断。例如,在网页中使用 `<input>` 元素获取用户输入,并通过 `onblur` 事件触发判断逻辑: ```html 请输入一个三位数:<input type="text" id="num" maxlength="3" minlength="3"> <script> document.getElementById('num').onblur = function() { var num = this.value; var long = String(num * 1).length; var a = num % 10; var b = (num - a) % 100 / 10; var c = (num - a - b * 10) / 100; var d = Math.pow(a, 3) + Math.pow(b, 3) + Math.pow(c, 3); if (long === 3) { if (num == d) { alert(num + ' 是水仙花'); } else { alert(num + ' 不是水仙花'); } } else { alert('请输入合法三位数'); } } </script> ``` 该实现通过 `onblur` 事件监听用户输入,并在输入框失去焦点时触发判断逻辑。同样地,先验证输入是否三位数,再分别提取个位、十位和百位,计算立方和并与原比较,最终给出提示[^3]。 此外,还可以使用 `readline-sync` 模块在 Node.js 环境中实现命令行交互式的水仙花判断: ```javascript const readline = require('readline-sync'); console.log('请输入一个三位数:'); let num = readline.question(); if (num >= 100 && num <= 999) { let a = parseInt(num / 100); let b = parseInt(num % 100 / 10); let c = parseInt(num % 10); if (num == (a ** 3) + (b ** 3) + (c ** 3)) { console.log('是水仙花'); } else { console.log('不是水仙花'); } } else { console.log('非法输入'); } ``` 该实现使用 `readline-sync` 模块读取用户输入,并通过 `parseInt` 提取百位、十位和个位。随后计算立方和并与原比较,输出判断结果[^2]。 ### 相关问题 1. 如何在 JavaScript 中提取一个三位数的个位、十位和百位? 2. JavaScript 中如何处理用户输入并验证其是否三位数? 3. 如何在网页中使用 JavaScript 实现水仙花的交互式判断? 4. 如何在 Node.js 环境中使用命令行判断水仙花? 5. 水仙花学定义及其在不同编程语言中的实现差异是什么?
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值