📅  最后修改于: 2023-12-03 15:16:37.374000             🧑  作者: Mango
Armstrong数是一个n位的正整数,如果它的每个数字的n次幂之和等于该数本身,则它是一个Armstrong数。例如, 371是Armstrong数,因为3^3 + 7^3 + 1^3 = 371。
在Java中可以使用循环和数学计算来检查一个数是否为Armstrong数。
以下是一个Java程序,用于检查一个数是否为Armstrong数:
import java.util.Scanner;
public class ArmstrongNumber {
public static void main(String[] args) {
int number, originalNumber, remainder, result = 0, n = 0;
Scanner scanner = new Scanner(System.in);
System.out.print("请输入整数:");
number = scanner.nextInt();
originalNumber = number;
// 计算数字的位数n
for (;originalNumber != 0; originalNumber /= 10, ++n);
originalNumber = number;
// 计算n次幂的和
while (originalNumber != 0) {
remainder = originalNumber % 10;
result += Math.pow(remainder, n);
originalNumber /= 10;
}
// 比较原始数字和n次幂的和
if (result == number)
System.out.println(number + "是Armstrong数");
else
System.out.println(number + "不是Armstrong数");
}
}
我们首先导入 java.util.Scanner
类,用于获取用户输入的数字。然后我们定义变量 number
、originalNumber
、remainder
、result
和 n
,分别表示输入的数字、原始数字、输入数字除以10的余数、n次幂的和以及数字的位数。
我们使用Scanner类的nextInt()
方法来获取用户输入的数字,然后计算原始数字的位数n。我们需要保留原始数字,以便在计算n次幂的和时使用。
使用while循环计算原始数字每个数字的n次幂的和,最后将这个和与原始数字进行比较,以确定它是否为Armstrong数。
该程序将输出以下结果:
请输入整数:371
371是Armstrong数
该程序用于检查任何整数是否为Armstrong数。无论输入的整数是几位数,它都可以计算其位数并找出是否为Armstrong数。