本文共 1333 字,大约阅读时间需要 4 分钟。
以下是我关于查找特定范围内水仙花数的解决方案:
问题理解
水仙花数是一个三位数,其各位数字的立方和等于它本身。例如,153 = 1³ + 5³ + 3³ = 153。确定范围
三位数i满足100 ≤ i ≤ 999。为了提高效率,可以将百位数设定在1到9之间,十位和个位设定在0到9之间。这减少了需要检查的数字数量。优化方法
代码实现
使用Java编写代码,以读取输入的起始值m和终止值n,遍历在m到n之间的所有整数i,检查其是否为水仙花数。处理细节
测试与验证
验证代码的正确性,可以手动测试几个已知的水仙花数,如153、370、371、407,确保正确识别。以下是实现代码:
import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int m = sc.nextInt(); int n = sc.nextInt(); StringBuilder sb = new StringBuilder(); for (int i = m; i <= n; i++) { int a = i / 100; int b = (i / 10) % 10; int c = i % 10; int sum = a * a * a + b * b * b + c * c * c; if (sum == i) { if (sb.length() > 0) sb.append("\n"); sb.append(i); } } if (sb.length() == 0) { System.out.println("no"); } else { System.out.print(sb.toString()); } }} 代码解释
这个解决方案简洁高效,适用于查找三位数范围内的水仙花数。
转载地址:http://dnjcz.baihongyu.com/