Twilight.. 发表于 2021-8-20 21:57:10

java输出所有水仙花数

package whileDemo;

public class Test8 {
    public static void main(String[] args) {
      int num = 100;
      int temp = num, sum = 0;
      while(num<1000){
            while(temp!=0){
                sum += Math.pow(temp%10, 3);
                temp /= 10;
            }
            if(sum==num){
                System.out.println(sum);
            }
            num++;
      }
    }
}
请教大佬们,为什么采用这种写法就输出不了水仙花数呢,感谢!

此方星河 发表于 2021-8-21 07:19:13

嗯,发现了一点小问题,你忘了重置temp和sum的值了!
每一次进行完一次while循环后,temp和sum的值都会改变,如果不重置,那么他们的初始值会是上一步进行最后求出来的值
/*所谓“水仙花数”是指一个三位数,
其各位数字立方和等于该数本身。
例如:153是一个“水仙花数”,
因为153=1的三次方+5的三次方+3的三次方。
*/

public class Test8 {
    public static void main(String[] args) {
      int num = 100;
      int temp = num, sum = 0;
               
      while(num<1000){
            while(temp!=0){
                // java.lang.Math.pow()
                // 方法用于返回第一个参数的第二个参数次方。
                sum += Math.pow(temp%10, 3);
                temp /= 10;
            }
                       
            if(sum==num){
                System.out.println(sum);
            }
                        num++;
                        temp = num;
                        sum = 0;
      }
    }
}
页: [1]
查看完整版本: java输出所有水仙花数