为什么输出的水仙花数只有 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