📌  相关文章
📜  Java程序使用函数显示间隔之间的阿姆斯壮数(1)

📅  最后修改于: 2023-12-03 14:43:03.332000             🧑  作者: Mango

Java程序使用函数显示间隔之间的阿姆斯壮数

阿姆斯壮数,又被称为自恋数或者水仙花数,是指一个n位数字( n≥3 ),它的每个数字的n次幂之和等于它本身。例如:153就是一个阿姆斯壮数,因为1³+5³+3³=153。

在这份指南中,我们将介绍如何在Java中编写一个函数,用于显示指定范围内的阿姆斯壮数。

实现方法

我们将创建一个名为printArmstrongNumbers的函数,它将接受两个整数参数startend,这些参数将指定要在哪个范围内查找阿姆斯壮数。然后,函数将在控制台上输出这些数字。

以下是完整的实现代码:

public class ArmstrongNumbers {

    public static void main(String[] args) {
        printArmstrongNumbers(100, 1000);
    }

    public static void printArmstrongNumbers(int start, int end) {
        for (int i = start; i <= end; i++) {
            if (isArmstrongNumber(i)) {
                System.out.println(i);
            }
        }
    }

    public static boolean isArmstrongNumber(int number) {
        int sum = 0;
        int originalNumber = number;
        int numberOfDigits = (int) Math.log10(number) + 1;

        while (number > 0) {
            int lastDigit = number % 10;
            sum += Math.pow(lastDigit, numberOfDigits);
            number /= 10;
        }

        return sum == originalNumber;
    }
}

我们首先从main方法调用printArmstrongNumbers函数。该函数接受两个参数:startend,它们指定要查找的范围。在这个例子中,我们将查找范围从100到1000的所有阿姆斯壮数。

printArmstrongNumbers函数使用一个for循环来迭代指定范围内的整数。在每个迭代中,我们将调用isArmstrongNumber函数,该函数将检查该数字是否是阿姆斯壮数。如果是,我们将使用System.out.println将该数字打印到控制台上。

isArmstrongNumber函数需要判断给定数字是否是阿姆斯壮数,并返回一个布尔值。我们从获取给定数字的副本开始,因为我们需要在计算之前保留原始数字。要计算数字的每个数字的n次幂之和,我们使用while循环遍历每个数字,并通过调用Math.pow函数来计算数字的幂。最后,我们将计算的和与原始数字进行比较,以确定数字是否是阿姆斯壮数。

总结

现在你已经知道如何在Java中查找指定范围内的阿姆斯壮数。通过编写printArmstrongNumbers函数和isArmstrongNumber函数,我们能够有效地查找阿姆斯壮数,并将它们打印到控制台上。