博客
关于我
杭电oj 2010 java实现
阅读量:485 次
发布时间:2019-03-07

本文共 1333 字,大约阅读时间需要 4 分钟。

以下是我关于查找特定范围内水仙花数的解决方案:

  • 问题理解

    水仙花数是一个三位数,其各位数字的立方和等于它本身。例如,153 = 1³ + 5³ + 3³ = 153。

  • 确定范围

    三位数i满足100 ≤ i ≤ 999。为了提高效率,可以将百位数设定在1到9之间,十位和个位设定在0到9之间。这减少了需要检查的数字数量。

  • 优化方法

    • 遍历每个三位数i,从100到999。
    • 拆分i的各位数字,分别计算它们的立方和。
    • 检查立方和是否等于i本身。如果是,则记录该数字。
  • 代码实现

    使用Java编写代码,以读取输入的起始值m和终止值n,遍历在m到n之间的所有整数i,检查其是否为水仙花数。

  • 处理细节

    • 确保正确地分解各位数字和计算立方和,避免计算错误。
    • 适当地处理输入过出的m和n是否在三位数范围内。
    • 如果找到的水仙花数为空,输出“no”;否则,逐个输出找到的数。
  • 测试与验证

    验证代码的正确性,可以手动测试几个已知的水仙花数,如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());        }    }}

    代码解释

    • 输入处理:从标准输入读取m和n,确定范围。
    • 遍历范围:从m到n遍历每个数字i。
    • 数字拆分:将i拆分为百位数a、十位数b和个位数c。
    • 立方和计算:计算各位数字的立方和,检查是否等于i。
    • 结果收集:将符合条件的水仙花数收集到一个字符串中,一个新线加隔离不同数字。
    • 输出结果:如果没有找到水仙花数则输出“no”,否则输出收集的数字。

    这个解决方案简洁高效,适用于查找三位数范围内的水仙花数。

    转载地址:http://dnjcz.baihongyu.com/

    你可能感兴趣的文章
    oracle 数据库dg搭建规范1
    查看>>
    oracle 时间函数
    查看>>
    oracle 时间转化函数及常见函数 .
    查看>>
    Oracle 权限(grant、revoke)
    查看>>
    oracle 查询clob
    查看>>
    Oracle 比较 B-tree 和 Bitmap 索引
    查看>>
    UML- 组件图(构件图)
    查看>>
    oracle 用户与锁
    查看>>
    oracle 由32位迁移到64位的问题
    查看>>
    oracle 监听器的工作原理
    查看>>
    oracle 行列转换
    查看>>
    oracle 行转列
    查看>>
    Oracle 表
    查看>>
    oracle 课堂笔记
    查看>>
    Oracle 返回结果集的 存储过程
    查看>>
    Oracle 递归
    查看>>
    Oracle 递归函数与拼接
    查看>>
    oracle 逻辑优化,提升高度,综合SQL上下文进行逻辑优化
    查看>>
    oracle 闪回关闭,关闭闪回即disable flashback的操作步骤
    查看>>
    oracle 限制用户并行,insert /*parallel */ 到不同用户,并行起不来的问题
    查看>>