所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花数 ",因为153= 1的三次方+5的三次方+3的三次方。
解题思路:首先要知道水仙花数是一个三位数,我们要获得这三位数的百位、十位、个位,然后再进行判断。 这里用到的Math类里面的 pow(double a , double b) 方法,获得a的b次方幂的值,这里要注意pow()方法返回的值得类型是double。
代码如下:
import java.util.*;
public class Work22{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
System.out.println("所有的水仙花数:");
for(int i=100;i<1000;i++){ //判断范围:三位数!
int a = (int)i/100 ; //获得百位
int b = (int)i/10-a*10; //获得十位
int c = (int)i-a*100-b*10; //获得个位
double a3= Math.pow(a,3); //分别求出a、b、c的三次幂
double b3= Math.pow(b,3);
double c3= Math.pow(c,3);
if(a3+b3+c3==i){ //判断是否满足水仙花数的条件,满足则输出!
System.out.println(i);
}
}
}
}