博客
关于我
杭电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/

    你可能感兴趣的文章
    Python PyQt5:如何使用 PyQt5 显示错误消息
    查看>>
    Python PYSFTP-以字符串/文本形式传递私钥,而不是传递文件路径
    查看>>
    Python pytest 面试题!
    查看>>
    Python pytz 时区函数返回一个相差 9 分钟的时区
    查看>>
    python rabbitmq实现简单/持久/广播/组播/topic/rpc消息异步发送可配置Django
    查看>>
    Python random和json模块
    查看>>
    Python random模块seed理解
    查看>>
    python range()函数
    查看>>
    Python rdflib可传递查询
    查看>>
    Redis 配置高可用和搭建集群
    查看>>
    python redis 集群_python 搭建redis集群
    查看>>
    python redis连接,在Python中使用Redis连接池的正确方法
    查看>>
    python regex_Python RegEx
    查看>>
    python requests post 中文结果请求得到unicode
    查看>>
    Python Requests接口自动化测试实战
    查看>>
    Python requests模块
    查看>>
    python request与grequests该如何选择
    查看>>
    python request模块
    查看>>
    Python requirements.txt的使用方法
    查看>>
    Python REST(Web 服务)框架的推荐?
    查看>>