java:水仙花数

博客围绕寻找所有水仙花数展开,介绍了水仙花数是三位数且各位立方和等于该数本身。解题思路是对100到999循环,获取每个三位数的个、十、百位,计算各位立方和并判断是否等于该数本身,还给出了获取各数位的具体方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题:
水仙花数定义:

  1. 一定是3位数
  2. 每一位的立方,加起来恰好是这个数本身,比如153=1*1*1+5*5*5+3*3*3

寻找所有的水仙花数

解题思路:

因为定义中说明值水仙花数一定是三位数,所以做一个从100到999的循环:
for(int i=100;i<1000;i++)

然后需要获取这个三位数的每一位数

拿153举例:

个位数:对10取余即可得到个位数。153/10=15……3,即得到个位:3

十位数:十位数稍微复杂一些,先除以10,消去个位,得到二位数15,再对 这个二位数取余得到个位数,15%10=1……5得到十位:5

百位数:百位数相对简单,直接除以100,就得到了百位:153/100=1

然后对拿到的三个数进行计算,然后判断是否等于这个数本身即可,关于立方,可以用Math.pow(x,3),也可以用x*x*x简单粗暴

完整代码:

public class Main {
    public static void main(String[] args) {
        for (int i = 100; i < 1000; i++) {
            int gw = i % 10;	//获得个位数
            int sw = (i / 10) % 10;	//获得十位数
            int bw = i / 100;	//获得百位数
            if (gw * gw * gw + sw * sw * sw + bw * bw * bw == i)
                System.out.println(i);	//输出符合条件的水仙花数
        }
    }
}
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AYO_YO

老板大气!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值