求1000以内的水仙花数

水仙花数问题

      • 水仙花问题描述
      • 实现代码

水仙花问题描述

水仙花数只是自幂数的一种,严格来说3位数的3次幂数才称为水仙花数。
水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。

附:其他位数的自幂数名字
一位自幂数:独身数
两位自幂数:没有
三位自幂数:水仙花数
四位自幂数:四叶玫瑰数
五位自幂数:五角星数
六位自幂数:六合数
七位自幂数:北斗七星数
八位自幂数:八仙数
九位自幂数:九九重阳数
十位自幂数:十全十美数

实现代码

    public static void main(String[] args) {
     
    
        for (int i = 0; i <=999; i++) {
     
            int count = 0;   
  //当下面while循环中条件表达式为tmp/10!=0时,此时count可以   设置为1,否则count会多计算一次
            int tmp = i;    //把i值给tmp
            while(tmp!=0){
     
                count++;    //上面操作获得数字的位数
                tmp/=10;
            }
            //此时tmp为0,不满足while循环
            tmp = i;   //继续把i的值给tmp
            int sum = 0;
            while(tmp != 0){
     
                sum += Math.pow(tmp%10,count);
                tmp/=10;
            }
            if(sum == i){
     
                System.out.print(i+" ");
            }
        }
    }

你可能感兴趣的:(java,数学)