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

    你可能感兴趣的文章
    Nginx配置代理解决本地html进行ajax请求接口跨域问题
    查看>>
    nginx配置全解
    查看>>
    Nginx配置参数中文说明
    查看>>
    nginx配置域名和ip同时访问、开放多端口
    查看>>
    Nginx配置好ssl,但$_SERVER[‘HTTPS‘]取不到值
    查看>>
    Nginx配置如何一键生成
    查看>>
    Nginx配置实例-负载均衡实例:平均访问多台服务器
    查看>>
    Nginx配置文件nginx.conf中文详解(总结)
    查看>>
    Nginx配置负载均衡到后台网关集群
    查看>>
    ngrok | 内网穿透,支持 HTTPS、国内访问、静态域名
    查看>>
    NHibernate学习[1]
    查看>>
    NHibernate异常:No persister for的解决办法
    查看>>
    NIFI1.21.0_Mysql到Mysql增量CDC同步中_日期类型_以及null数据同步处理补充---大数据之Nifi工作笔记0057
    查看>>
    NIFI1.21.0_NIFI和hadoop蹦了_200G集群磁盘又满了_Jps看不到进程了_Unable to write in /tmp. Aborting----大数据之Nifi工作笔记0052
    查看>>
    NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增删改数据分发及删除数据实时同步_通过分页解决变更记录过大问题_02----大数据之Nifi工作笔记0054
    查看>>
    NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_根据binlog实现数据实时delete同步_实际操作04---大数据之Nifi工作笔记0043
    查看>>
    NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置binlog_使用处理器抓取binlog数据_实际操作01---大数据之Nifi工作笔记0040
    查看>>
    NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_实现数据插入数据到目标数据库_实际操作03---大数据之Nifi工作笔记0042
    查看>>
    NIFI从MySql中离线读取数据再导入到MySql中_03_来吧用NIFI实现_数据分页获取功能---大数据之Nifi工作笔记0038
    查看>>
    NIFI从PostGresql中离线读取数据再导入到MySql中_带有数据分页获取功能_不带分页不能用_NIFI资料太少了---大数据之Nifi工作笔记0039
    查看>>