为什么输出的水仙花数只有 153 370 371 407?

请救救我的作业!

import java.lang.Math;

public class Main {

public static void main(String[] args) {

int i;

for( i=100;i<=10000;i++){

if(i==fun(i))

System.out.print(i+" "); //输出100-10000间的水仙花数

}

}

public static double fun(int i){

double k=0;

while(i>0){

k+=Math.pow(i%10,3);

i/=10;

}

return k;

}

}


回答:

public class Main {

public static void main(String[] args) {

for (int i = 100; i <= 10000; i++) {

if (i == fun(i)) {

System.out.print(i + " "); // 输出100-10000间的水仙花数

}

}

}

public static int fun(int i) {

int sum = 0;

int n = i;

int digitCount = (int)Math.log10(i) + 1; // 计算数字的位数

while (n > 0) {

int d = n % 10;

sum += Math.pow(d, digitCount);

n /= 10;

}

return sum;

}

}

以上是 为什么输出的水仙花数只有 153 370 371 407? 的全部内容, 来源链接: utcz.com/p/945440.html

回到顶部