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);
            }
        }
    }

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 自监督:对比学习contrastive learning「建议收藏」

    自监督:对比学习contrastive learning「建议收藏」对比自监督学习英文原文对比自监督学习导读利用数据本身为算法提供监督。对比自监督学习技术是一种很有前途的方法,它通过学习对使两种事物相似或不同的东西进行编码来构建表示。自监督方法将取代深度学习中占主导地位的直接监督范式的预言已经存在了相当一段时间。AlyoshaEfros打了一个著名的赌,赌在2015年秋季之前,一种无监督的方法将会在检测PascalVOC方面胜过有监督的R-CNN。但四年之后,他的预言现在已经实现了。目前,自监督方法(MoCo,Heetal.,2019)在Pasc

  • 最大似然估计的分布函数_二项分布的最大似然估计值怎么求

    最大似然估计的分布函数_二项分布的最大似然估计值怎么求原因今天晚上,老师在看LDA数学八卦的时候,问我一个问题,如下图所示:这个多项式分布的参数,采用极大估计是怎么求的呢?当时想了想还真不知道,于是在网上找了资料,学习了一下,特此记录。公式推导很多情况下,假定一个变量XX有kk个状态,其中k&gt;2k&gt;2,每个状态假定的可能性为p1,p2,⋯,pkp_{1},p_{2},\cdots,p_{k},且∑ki=1pi=1\sum_{i=1}

    2022年10月12日
  • 贴片电阻0805,1206是什么意思_贴片电阻识别及型号

    贴片电阻0805,1206是什么意思_贴片电阻识别及型号0805封装尺寸/0402封装尺寸/0603封装尺寸/1206封装尺寸封装尺寸与功率关系:  02011/20W  04021/16W  06031/10W  08051/8W  12061/4W封装尺寸与封装的对应关系  0402=1.0mmx0.5mm  0603=1.6mmx0.8mm  0805=2.0mmx1.2mm  120

  • pycharm怎么添加项目_pycharm 其他

    pycharm怎么添加项目_pycharm 其他pycharm项目添加,在使用pycharm的过程中,有时想要在项目列表中展示多个项目需求第一种情况:原有项目的同级别目录展示另一个项目,如下面的截图操作路径:文件–打开–选择要添加的项目–点附加第二种情况:在原来的项目的主目录下添加拧一个项目,如下面的截图操作路径:文件–设置–项目–项目结构–添加内容根注意:以上两种添加方式:项目的根目录都是第一个项目创建时的根目录,查勘方式,点终端就会显示路径,这个路径也项目的…

  • 内积空间上的等积变换_内积和距离的关系

    内积空间上的等积变换_内积和距离的关系内积空间、三角不等式、模长、不变子空间、镜像变换

发表回复

您的电子邮箱地址不会被公开。

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