java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Java打印水仙花数

使用Java打印出所有的水仙花数的解决方法

作者:牛肉胡辣汤

水仙花数也被称为超完全数字不变数、自恋数、自幂数,是指一个 n 位数 (n≥3),它的每个位上的数字的 n 次幂之和等于它本身,本文将通过 Java 语言来实现一个简单的程序,用于找出并打印所有三位数中的水仙花数,需要的朋友可以参考下

前言

水仙花数(Narcissistic number)也被称为超完全数字不变数、自恋数、自幂数,是指一个 n 位数 (n≥3),它的每个位上的数字的 n 次幂之和等于它本身。对于三位数而言,如果一个三位数的各位数字的立方和等于这个数本身,那么这个数就是水仙花数。

例如,153 是一个水仙花数,因为 \(1^3 + 5^3 + 3^3 = 153\)。

本文将通过 Java 语言来实现一个简单的程序,用于找出并打印所有三位数中的水仙花数。

实现思路

  1. 确定范围:由于水仙花数是三位数,因此我们的查找范围是 100 到 999。
  2. 分解数字:对于每一个三位数,我们需要将其分解为百位、十位和个位。
  3. 计算立方和:计算这三个位置上数字的立方和。
  4. 比较结果:如果计算出的立方和等于原数,则该数为水仙花数。
  5. 输出结果:将找到的所有水仙花数打印出来。

Java代码实现

public class NarcissisticNumber {
    public static void main(String[] args) {
        // 遍历100到999之间的所有数字
        for (int num = 100; num <= 999; num++) {
            if (isNarcissistic(num)) {
                System.out.println(num);
            }
        }
    }
 
    /**
     * 判断一个数是否为水仙花数
     * @param num 待判断的数
     * @return 如果是水仙花数返回true,否则返回false
     */
    private static boolean isNarcissistic(int num) {
        int originalNum = num;
        int sum = 0;
 
        // 分解数字并计算立方和
        while (num > 0) {
            int digit = num % 10;
            sum += Math.pow(digit, 3);
            num /= 10;
        }
 
        // 判断立方和是否等于原数
        return sum == originalNum;
    }
}

运行结果

运行上述代码后,程序将输出所有的三位数水仙花数:

153
370
371
407

下面是一个用Java编写的示例代码,用于找出并打印所有的水仙花数(即三位数中,其各个位上的数字立方和等于该数本身的数)。

public class NarcissisticNumber {
    public static void main(String[] args) {
        // 遍历所有三位数,从100到999
        for (int number = 100; number <= 999; number++) {
            if (isNarcissistic(number)) {
                System.out.println(number);
            }
        }
    }
 
    /**
     * 判断一个数是否是水仙花数
     * @param number 要判断的数
     * @return 如果是水仙花数返回true,否则返回false
     */
    public static boolean isNarcissistic(int number) {
        int originalNumber = number;
        int sum = 0;
 
        // 提取每一位数字并计算立方和
        while (number > 0) {
            int digit = number % 10;
            sum += Math.pow(digit, 3);
            number /= 10;
        }
 
        // 判断立方和是否等于原数
        return sum == originalNumber;
    }
}

代码解释:

  1. 主方法 main​:
  1. 辅助方法 isNarcissistic​:

运行结果:

运行上述代码后,输出将是所有的水仙花数:

153
370
371
407

这些数都是三位数,并且它们各自的各位数字的立方和等于该数本身。希望这个示例对你有帮助!如果有任何问题或需要进一步的解释,请随时告诉我。当然可以!下面是一个详细的Java程序,用于找出并打印所有的水仙花数。

什么是水仙花数?

水仙花数(Narcissistic number)是指一个三位数,其各位数字的立方和等于该数本身。例如,153 是一个水仙花数,因为:153 = 1^3 + 5^3 + 3^3

Java代码实现

public class NarcissisticNumber {
    public static void main(String[] args) {
        // 遍历所有三位数,从100到999
        for (int num = 100; num <= 999; num++) {
            if (isNarcissistic(num)) {
                System.out.println(num);
            }
        }
    }
 
    // 判断一个数是否是水仙花数
    public static boolean isNarcissistic(int num) {
        int originalNum = num;
        int sum = 0;
 
        // 提取每一位数字并计算立方和
        while (num > 0) {
            int digit = num % 10; // 取出个位数
            sum += Math.pow(digit, 3); // 计算立方并累加
            num /= 10; // 去掉个位数
        }
 
        // 判断立方和是否等于原数
        return sum == originalNum;
    }
}

代码解释

  1. 主方法 main​:
  1. 辅助方法 isNarcissistic​:

运行结果

运行上述程序,输出将是所有三位数中的水仙花数:

153
370
371
407

这些数都是满足条件的水仙花数。希望这个解释对你有帮助!如果有任何问题或需要进一步的说明,请随时告诉我。

以上就是使用Java打印出所有的水仙花数的解决方法的详细内容,更多关于Java打印水仙花数的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文