java:水仙花数

问题:
水仙花数定义:

  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);	//输出符合条件的水仙花数
        }
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_44289959/article/details/110524142