📜  用于检查两个整数之间的阿姆斯壮数的Java程序(1)

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

检查阿姆斯壮数的Java程序

阿姆斯壮数指的是一个$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.");
        }
    }
}
代码说明

这个程序包含了两个方法:isArmstrongarmstrongBetween

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.");
        }
    }
}

这个方法接收两个整数startend,并打印出两个整数之间的所有阿姆斯壮数。

这个方法用一个循环遍历startend之间的每一个整数。对于每一个整数,使用isArmstrong方法检查它是否是阿姆斯壮数。如果它是阿姆斯壮数,就打印出它的值。

使用示例

以下是使用示例:

armstrongBetween(1, 1000);

这个方法将输出11000之间的所有阿姆斯壮数。