输出所有的水仙花数(Java实现)

什么是水仙花数

所谓的水仙花数,就是指一个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

你可能感兴趣的:(输出所有的水仙花数(Java实现))