📜  Java程序以检查Armstrong编号(1)

📅  最后修改于: 2023-12-03 15:16:37.374000             🧑  作者: Mango

Java程序以检查Armstrong编号

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 类,用于获取用户输入的数字。然后我们定义变量 numberoriginalNumberremainderresultn,分别表示输入的数字、原始数字、输入数字除以10的余数、n次幂的和以及数字的位数。

我们使用Scanner类的nextInt()方法来获取用户输入的数字,然后计算原始数字的位数n。我们需要保留原始数字,以便在计算n次幂的和时使用。

使用while循环计算原始数字每个数字的n次幂的和,最后将这个和与原始数字进行比较,以确定它是否为Armstrong数。

该程序将输出以下结果:

请输入整数:371
371是Armstrong数

该程序用于检查任何整数是否为Armstrong数。无论输入的整数是几位数,它都可以计算其位数并找出是否为Armstrong数。