Java 程序:打印 1 到 n 之间的阿姆斯特朗数


2022 年 2 月 18 日, Learn eTutorial
2768

在这里,我们将解释如何编写一个 Java 程序来显示 1 到 n 之间的阿姆斯特朗数。

什么是阿姆斯特朗数?

一个 n 位整数如果满足以下条件,则可称为阿姆斯特朗数:

abcd...n=pow(a,n)+pow(b,n)+pow(c,n)+pow(d,n)+....

其中 a,b,c,d 是该数字的位数。

如何实现 Java 程序来显示 1 到 n 之间的阿姆斯特朗数?

首先,我们必须声明类 `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=numnum=num/10b=b+(a*a*a)

步骤 10:检查是否 i=b,如果为真,则显示数字 i 是阿姆斯特朗数。

步骤 11:将 i 增加一并重复步骤 7。

Java 源代码

                                          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