📅  最后修改于: 2023-12-03 15:11:17.310000             🧑  作者: Mango
阿姆斯壮数指的是一个$n$位数,它的每个数字的$n$次方之和等于它本身。例如,$153$是一个阿姆斯壮数,因为$1^3+5^3+3^3=153$。
下面是一个Java程序,用于检查两个整数之间的阿姆斯壮数。
public static boolean isArmstrong(int n) {
int sum = 0;
int num = n;
int digits = String.valueOf(n).length();
while (num > 0) {
int digit = num % 10;
sum += Math.pow(digit, digits);
num /= 10;
}
return sum == n;
}
public static void armstrongBetween(int start, int end) {
for (int i = start; i <= end; i++) {
if (isArmstrong(i)) {
System.out.println(i + " is an Armstrong number.");
}
}
}
这个程序包含了两个方法:isArmstrong
和armstrongBetween
。
isArmstrong
方法public static boolean isArmstrong(int n) {
int sum = 0;
int num = n;
int digits = String.valueOf(n).length();
while (num > 0) {
int digit = num % 10;
sum += Math.pow(digit, digits);
num /= 10;
}
return sum == n;
}
这个方法接收一个整数n
,并返回一个布尔类型的值,表示n
是否是一个阿姆斯壮数。
这个方法首先计算出n
的位数,然后用一个循环遍历n
的每一位数字,计算它们的$n$次方之和。最后,将这个和与n
进行比较,然后返回比较结果。
armstrongBetween
方法public static void armstrongBetween(int start, int end) {
for (int i = start; i <= end; i++) {
if (isArmstrong(i)) {
System.out.println(i + " is an Armstrong number.");
}
}
}
这个方法接收两个整数start
和end
,并打印出两个整数之间的所有阿姆斯壮数。
这个方法用一个循环遍历start
到end
之间的每一个整数。对于每一个整数,使用isArmstrong
方法检查它是否是阿姆斯壮数。如果它是阿姆斯壮数,就打印出它的值。
以下是使用示例:
armstrongBetween(1, 1000);
这个方法将输出1
到1000
之间的所有阿姆斯壮数。