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++;
}
}
}
请教大佬们,为什么采用这种写法就输出不了水仙花数呢,感谢! 嗯,发现了一点小问题,你忘了重置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]