一个理解简单的Java程序用来寻找三位的水仙花数
这个是这个程序的精简版本
public class Main {
public static void main(String[] args) {
int count = 0;
for (int w3 = 1; w3 < 10; w3++)
for (int w2 = 0; w2 < 10; w2++)
for (int w1 = 0; w1 < 10; w1++)
if ((int) (Math.pow(w3, 3) + Math.pow(w2, 3) + Math.pow(w1, 3)) == 100 * w3 + 10 * w2 + w1)
count++;
System.err.println(count);
}
}
这个用于理解
- 其中
Math.pow(a,b)
得出的是a
的b
次幂,由于返回值类型是double类型,所以进行强转 (int)
w3
表示百位数,所以从1开始;w2
表示十位数;w1
表示个位数。a
表示各个位数的平方和b
表示要比较的数字
public class Main {
public static void main(String[] args) {
int count = 0;
for (int w3 = 1; w3 < 10; w3++) {
for (int w2 = 0; w2 < 10; w2++) {
for (int w1 = 0; w1 < 10; w1++) {
int a = (int) (Math.pow(w3, 3) + Math.pow(w2, 3) + Math.pow(w1, 3));
int b = 100 * w3 + 10 * w2 + w1;
if (a == b) {
System.out.println(a);
count++;
}
}
}
}
System.out.println(count);
}
}