题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和
等于该数本身。例如:153 是一个 "水仙花数 ",因为 153=1 的三次方+5 的三次方+3 的
三次方。
(扩展:水仙花是三位数或者更多位数,例如54748就是各位数的5次方相加的和)
打印:
水仙花数=153
水仙花数=370
水仙花数=371
水仙花数=407
水仙花数=1634
水仙花数=8208
水仙花数=9474
水仙花数=54748
水仙花数=92727
水仙花数=93084
原始的解法是:
等于该数本身。例如:153 是一个 "水仙花数 ",因为 153=1 的三次方+5 的三次方+3 的
三次方。
(扩展:水仙花是三位数或者更多位数,例如54748就是各位数的5次方相加的和)
@Test
public void testshuixianhua2() {
int num1, num2, num3;
for (int i = 101; i < 100000; i++) {
String temp = String.valueOf(i);
int lenth = temp.length();
char[] temp01 = temp.toCharArray();
int sum = 0;
for (int j = 0; j < lenth; j++) {
num1 = Integer.parseInt(String.valueOf(temp01[j]));
sum += Math.pow(num1, lenth);
}
if (sum == i) {
System.err.println("水仙花数" + "=" + sum);
}
}
}
打印:
水仙花数=153
水仙花数=370
水仙花数=371
水仙花数=407
水仙花数=1634
水仙花数=8208
水仙花数=9474
水仙花数=54748
水仙花数=92727
水仙花数=93084
原始的解法是:
int num1, num2, num3;
for (int i = 101; i < 1000; i++) {
num1 = i / 100;
num2 = (i / 10) % 10;
num3 = i % 10;
//System.err.println(num1 + "--" + num2 + "--" + num3);
if ((double) i == Math.pow(num1, 3) + Math.pow(num2, 3) + Math.pow(num3, 3)) {
System.err.println(i);
}
}
本文介绍了一种通过编程找出所有水仙花数的方法。水仙花数是指一个数的各位数字的幂次方之和等于该数本身的特殊整数。文章提供了一段Java代码示例,展示了如何遍历范围内的整数并检查它们是否符合水仙花数的标准。
1191

被折叠的 条评论
为什么被折叠?



