以下是代码
2017-11-25
public static void nar (int num ) {
// 判断一个数是否是水仙花数
int sum = 0 , flag = num , i = 0;
//取得该数位数 i
while ((int) (flag / (int)(Math.pow(10, i))) > 0) {//370
num = (int) (flag / (int)(Math.pow(10, i))) % 10;
i++;
}
//取得各位数的 i次方之和
for (int j = 0; j <= i; j++) {
sum += (int) Math.pow((flag / (int)(Math.pow(10, j))) % 10, i);
}
//判断是否为水仙花数
if (flag == sum) {
System.out.println(flag + "是水仙花数。");
}
}
注意: Math.pow( a , b ) 为 double 。 意为 a 的 b 次幂 ,结果为double 型。