什么是水仙花数
所谓的水仙花数,就是指一个3
位数,其各个位上数字立方和等于其本身。
如:153 = 1^3 + 5^3 + 3^3;
源代码如下:
package com.liuhuan.java;
/**
* 打印水仙花数
* @author 刘欢
*
*/
public class PrintNarcissisticNumber {
/** 主方法 */
public static void main(String[] args) {
PrintNarcissisticNumber.print();
}
/** 返回该数是否是水仙花数的布尔值 */
public static boolean isNarcissisticNumber(int number) {
// 取个位数
int singleDigit = number % 10;// 153 --> 3
// 取十位数
int remainingNumber = number / 10;// 153 --> 15
int tensDigit = remainingNumber % 10;// 15 --> 5
// 取百位数
remainingNumber = remainingNumber / 10;// 15 --> 1
int hundredsDigit = remainingNumber %10;// 15 --> 5
int sumOfDigit = (int)(Math.pow(singleDigit, 3)
+ Math.pow(tensDigit, 3) + Math.pow(hundredsDigit, 3));
return sumOfDigit == number;
}
/** 打印水仙花数 */
public static void print() {
int count = 0;
for (int i = 100; i < 1000; i++) {
if(isNarcissisticNumber(i)) {
count++;
if(count % 10 == 0) {
System.out.println(i);
} else {
System.out.printf("%-4d", i);
}
}
}
}
}
输出结果:153 370 371 407