Java 程序检查数字是否为阿姆斯特朗数


2022 年 12 月 13 日, Learn eTutorial
2250

在这里,我们将解释如何编写一个 Java 程序来检查一个 10 进制的三位数是否为阿姆斯特朗数。这是一个简单的基于数字的程序,通过 Java 中的数学运算和循环实现。

要了解更多关于阿姆斯特朗数的概念,我们相信我们的博客 阿姆斯特朗数的基础知识 将对您大有帮助

我们建议您阅读以下 Java 主题,以便更好地理解该程序。

如何检查一个 10 进制的三位数是否为阿姆斯特朗数?

如果一个三位数的每个数字的立方和等于该数字本身,则称该数字为阿姆斯特朗数.

示例:371

  • 371 的数字3、7、1
  • 每个数字的立方如下所示
    • 33=27
    • 73=343
    • 13=1
  • 那么这些数字的立方和 = 27+343+1 = 371

        

如何实现 Java 程序来检查数字是否为阿姆斯特朗数?

首先,声明一个名为 ArmstrongNum 的 Java 类。然后声明所需的变量。创建扫描器类的对象 sc,并从用户处读取数字到变量 num 中。赋值 originalNum=num。使用 while 循环 和条件 num != 0,找出 num 的数字的立方和,

  • 通过计算 num 除以 10 的余数,得到每个数字,digit=num
  • 使用 Java 的 pow() 方法计算 digit 的立方,并将其与 cubeSum 相加
  • 要找到下一个 digit,赋值 num = num/10

退出循环后,检查 cubeSum 是否与 originalNum 相同,如果相同,则使用 system.out.println() 显示该数字是阿姆斯特朗数,否则显示该数字不是阿姆斯特朗数。

算法

步骤 1:使用 public 修饰符声明类 ArmstrongNum

步骤2:打开main()开始程序,Java程序执行从main()开始

步骤 3:声明整数变量 originalNum, digit, cubeSum, num

步骤 4:赋值 cubeSum = 0

步骤 5:创建扫描器类的对象 sc

步骤 6:将数字读入变量 num

步骤 7:赋值 originalNum=num

步骤 8:使用条件为 originalNum !=0while 循环,执行步骤 9、10

步骤 9:计算 digit、该数字的立方,并将立方和存入 cubeSum

步骤 10:然后要找到下一个数字,将 num 除以 10

步骤 11:循环处理结束后,检查 cubeSum 是否等于 originalNum

  • 如果为真,则显示该数字是阿姆斯特朗数
  • 否则显示该数字不是阿姆斯特朗数。

Java 源代码

                                          import java.util.Scanner;

public class ArmstrongNum {

    public static void main(String[] args) {

        int originalNum, digit, cubeSum = 0,num;
        
        System.out.println("Enter the number:");
        Scanner sc = new Scanner(System. in );
        num = sc.nextInt();
        originalNum = num;

        while (num!= 0)
        {
            digit = num % 10;
            cubeSum += Math.pow(digit, 3);
            num /= 10;
        }

        if(cubeSum == originalNum)
            System.out.println(originalNum+ " is an Armstrong number");
        else
            System.out.println(originalNum+ " is not an Armstrong number");
    }
}
                                      

输出

Enter the number: 371
371 is an Armstrong number