要判断一个数是否为水仙花数,首先得弄清楚,该数个十百上的数立方相加是否等于本身,如153=1^3 + 5^3+ 3^3 。
第二步要解决的就是,要取到水仙花数个位,十位,百位的数。
利用math.pow(x,y)函数相加,判断输入的值是否为水仙花数。
代码如下:
Scanner input = new Scanner(System.in);
System.out.println("请输入数字,用来判断是否为水仙花数:");
int shu = input.nextInt();
int bai=shu/100; //取数字的百位数
int shi=(shu-100*bai)/10; //取数字的十位数
int ge=(shu-shi*10-bai*100); //去数字的个位数
/* System.out.println(+bai); 查看取值
System.out.println(+shi);
System.out.println(+ge); */
if(shu==Math.pow(bai,3)+Math.pow(shi,3)+Math.pow(ge,3)) { //Math.pow(x,y)是个函数,是求x的y次方
System.out.println("这个是水仙花数:"+shu);
}else {
System.out.println("该数不是水仙花数");
}
以上的if(){}还可以写成:ge*ge*ge+shi*shi*shi+bai*bai*bai