在这里,我们将解释如何编写一个 Java 程序来显示 1 到 n 之间的阿姆斯特朗数。
一个 n 位整数如果满足以下条件,则可称为阿姆斯特朗数:
abcd...n=pow(a,n)+pow(b,n)+pow(c,n)+pow(d,n)+....
其中 a,b,c,d 是该数字的位数。
首先,我们必须声明类 `AmstrongNum`。然后声明变量 `a,b,temp,n` 为整数。创建一个 `Scanner` 类的对象 `sc`,并从用户那里读取数字到变量 `n` 中。将 `temp=n`。使用 `while` 循环将 **a=n**。现在 `a` 包含 `n` 的最后一位数字。将 `n=n/10`。然后计算所有数字的立方和为 **b=b+(a*a*a)**。退出循环后,检查 `if` **temp=b**,如果为真,则显示数字 `b` 是阿姆斯特朗数。`Else` 使用 `system.out.println()` 显示该数字不是阿姆斯特朗数。
步骤 1:声明带有公共修饰符的类 ArmstrongNumber。
步骤 2:打开 main() 以启动程序,Java 程序执行从 main() 开始
步骤 3:声明整数变量 a,b,temp,n。
步骤 4:将 b=0。
步骤 5:创建一个 `Scanner` 类的对象 `sc`。
步骤 6:将数字读入变量 n。
步骤 7:使用 `for` 循环设置 i=1,检查 i<=n,然后执行步骤 8。
步骤 8:赋值 num=i,b=0。
步骤 8:使用 `while` 循环检查 num>0,如果为真则执行步骤 9。
步骤 9:赋值 a=num,num=num/10,b=b+(a*a*a)。
步骤 10:检查是否 i=b,如果为真,则显示数字 i 是阿姆斯特朗数。
步骤 11:将 i 增加一并重复步骤 7。
import java.util.Scanner;
public class ArmstrongNumber {
public static void main(String[] args) {
int a,
b = 0,
temp,
n,
num;
Scanner sc = new Scanner(System. in );
System.out.println("Enter the value of n: ");
n = sc.nextInt();
for (int i = 1; i <= n; i++) {
num = i;
b = 0;
while (num > 0) {
a = num;
num = num / 10;
b = b + (a * a * a);
}
if (i == b) System.out.println(i);
}
}
}
Enter the value of n: 1000 Armstrong Numbers from 1 to 1000 1 153 370 371 407