📅  最后修改于: 2023-12-03 14:43:03.332000             🧑  作者: Mango
阿姆斯壮数,又被称为自恋数或者水仙花数,是指一个n位数字( n≥3 ),它的每个数字的n次幂之和等于它本身。例如:153就是一个阿姆斯壮数,因为1³+5³+3³=153。
在这份指南中,我们将介绍如何在Java中编写一个函数,用于显示指定范围内的阿姆斯壮数。
我们将创建一个名为printArmstrongNumbers
的函数,它将接受两个整数参数start
和end
,这些参数将指定要在哪个范围内查找阿姆斯壮数。然后,函数将在控制台上输出这些数字。
以下是完整的实现代码:
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
函数。该函数接受两个参数:start
和end
,它们指定要查找的范围。在这个例子中,我们将查找范围从100到1000的所有阿姆斯壮数。
printArmstrongNumbers
函数使用一个for
循环来迭代指定范围内的整数。在每个迭代中,我们将调用isArmstrongNumber
函数,该函数将检查该数字是否是阿姆斯壮数。如果是,我们将使用System.out.println
将该数字打印到控制台上。
isArmstrongNumber
函数需要判断给定数字是否是阿姆斯壮数,并返回一个布尔值。我们从获取给定数字的副本开始,因为我们需要在计算之前保留原始数字。要计算数字的每个数字的n次幂之和,我们使用while循环遍历每个数字,并通过调用Math.pow
函数来计算数字的幂。最后,我们将计算的和与原始数字进行比较,以确定数字是否是阿姆斯壮数。
现在你已经知道如何在Java中查找指定范围内的阿姆斯壮数。通过编写printArmstrongNumbers
函数和isArmstrongNumber
函数,我们能够有效地查找阿姆斯壮数,并将它们打印到控制台上。