Java 实现水仙花数

Java 实现水仙花数Java实现水仙花数,并进行代码优化。

大家好,又见面了,我是你们的朋友全栈君。

求出0~999之间的所有“水仙花数”并输出。所谓“水仙花数”是指一个三位数,其各位数字的立方和恰好等于该数本身。

public static void main(String[] args) { 
   
        System.out.println("水仙花数有:");
        for (int i = 100; i <1000; i++) { 
   
            int hundard = i / 100;//百位数
            int decade = (i % 100) / 10;//十位数
            int one = i % 10;//个位数
            int sum = hundard * hundard * hundard 
                    + decade * decade *decade + one * one * one;
            if(sum == i){ 
   
                System.out.print(i+" ");
            }
        }
    }

//运行结果
水仙花数有:
153 370 371 407 
    

扩展:
满足该数的各位数字的立方和等于其本身这种条件的数称为自幂数,水仙花数只是自幂数的一种,满足条件还有四位数、五位数等等,那么显然上面的代码不足于求其他位数的自幂数。

代码优化:

//求0-999999之间的自幂数
public static void main(String[] args) { 
   
        func();
    }
    public static void func(){ 
   
        for (int i = 0; i < 1000000; i++) { 
   
            //计算是几位数
            int tmp = i;
            int count = 0;
            while (tmp != 0){ 
   
                count++;
                tmp = tmp / 10;
            }
            tmp = i;
            //计算当前数字tmp的每一位
            int sum = 0;
            while (tmp != 0){ 
   
                sum += Math.pow(tmp % 10,count);
                tmp /= 10;
            }
            if(sum == i){ 
   
                System.out.println(i);
            }
        }
    }

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/157027.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 海思Hi3798处理器参数,Hi3798芯片详细信息介绍

    海思Hi3798处理器参数,Hi3798芯片详细信息介绍Hi3798CV200集成4核64位高性能CortexA53处理器、内置NEON加速引擎,强大的CPU处理能力可以满足各种差异化的业务需求。在码流兼容性、在线视频播放的流畅性、图像质量以及整机性能方面保持业界最好的用户体验。支持4K2KP60@10bit超高清视频解码和显示,支持H.265/HEVC、H.264/AVC、AVS+、MVC、MPEG2、MPEG4、VC-1、VP6、VP…

    2022年6月30日
    114
  • 钓鱼网站盗QQ_qq看别人的空间一定会被别人知道吗

    钓鱼网站盗QQ_qq看别人的空间一定会被别人知道吗刚刚打开手机tim看到QQ空间有留言下面一个截图的东西(别扫进去输自己的账号密码哈,看看就得了,典型的钓鱼网站)貌似在前几年就有此类网站,不过现在高级了些,下面就由图图来分析一下原理是什么鬼(毫无技术含量)大神快点绕道!!!首先看到这个图片而写是熟人给你留言的,并且还是以好友备注的名字进行留言“XXX,我们合影的照片都在这里了你太好笑了照片呆呆的,长摁识别”会有这么一句话,好奇心强的都会点进去看~【为什么要搞这种二维码呢?就是为了不让一些在线解码的网站轻易识别反而只有QQ、微信可…

    2022年8月24日
    4
  • Java——数组的定义与使用「建议收藏」

    Java——数组的定义与使用「建议收藏」目录1.数组2.数组初始化2.1动态初始化(声明并开辟数组)2.2引用传递的内存分析2.3静态初始化(开辟同时赋值)3.二维数组4.数组与方法互操作5.Java对数组的支持5.1排序:5.2拷贝6.对象数组6.1动态初始化1.数组一组相关类型的变量集合缺点:长度固定,存在越界问题2.数组初始化 2.1动态初始化…

    2022年5月22日
    40
  • Oracle 视图索引

    Oracle 视图索引第五章视图索引的操作5.1视图的功能一个视图实际上就是封装了一条复杂的查询语句注:为了在当前用户模式中创建视图,要求数据库用户必须有createanyview(创建任何视图)的权限。5.2创建视图的语法create[orreplace]view视图名称as查询语句例:建立一个视图,包含全部部门编号为20的部门的雇员信息(雇员编号,姓名,工作,部门编号)createview…

    2022年7月22日
    7
  • 守护线程详解_线程池任务队列

    守护线程详解_线程池任务队列packagecom.lastinglate.concurrency.chapter4;publicclassDaemonThread{publicstaticvoidmain(String[]args)throwsInterruptedException{Threadt=newThread(){@Overridepublicvoidrun(){t

    2022年8月31日
    3
  • set/getenforce

    set/getenforce在AndroidKK4.4版本后,Google启用SELinux来增强Android的安全性。可以使用setenforce命令进行设置模式:adbshellsetenforce0//设置成Permissive模式adbshellsetenforce0//设置成Permissive模式adbshellsetenforce1//设置成Enforc

    2022年6月27日
    28

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号