Java 程序:检查阿姆斯特朗数字

原文:https://www.studytonight.com/java-programs/java-program-to-check-armstrong-number

在本教程中,我们将学习如何检查数字是否是阿姆斯特朗。

如果每一个数字的 n 次方的和等于数字本身,那么 n 位数就被称为阿姆斯特朗数。例如,如果一个 3 位数的立方之和等于该数本身,则称该数为阿姆斯特朗数。

但是在继续之前,如果你不熟悉 java 中循环的概念,那么一定要查看关于 Java 中循环的文章

输入:输入数字:153

输出:是的,输入的数字 153 是阿姆斯特朗数字。

Java 程序:检查阿姆斯特朗数字

在这个节目中,我们将看到如何找到一个数字是否是阿姆斯特朗。

算法:

  1. 开始

  2. 创建 Scanner 类的实例。

  3. 声明一个变量。

  4. 要求用户初始化数字。

  5. 定义 3 种方法,一种是检查阿姆斯特朗,另一种是计算顺序,还有一种是计算升至幂的值。

  6. 使用 while 循环计算 order 函数中的总位数。

  7. 计算升至幂阶值的位数。

  8. 在 isArmstrong 方法中,检查输入的数字是否是阿姆斯特朗。

  9. 如果找到了阿姆斯特朗,那就还真否则就还假。

  10. 如果为真,则打印一条消息,说明输入的数字是阿姆斯特朗。

  11. 如果为假,则打印一条消息,说明输入的数字不是阿姆斯特朗数字。

  12. 显示消息。

  13. 停下来。

下面是检查阿姆斯特朗号的 Java 代码。

//Java Program to check Armstrong Number
import java.util.*;
public class checkArmstrong 
{ 
    int pow(int x, long y) 
    { 
        if( y == 0) 
            return 1; 
        if (y%2 == 0) 
            return pow(x, y/2)*pow(x, y/2); 
        return x*pow(x, y/2)*pow(x, y/2); 
    } 
    int order(int num) 
    { 
        int n = 0; 
        while (num != 0) 
        { 
            n++; 
            num = num/10; 
        } 
        return n; 
    } 
    boolean isArmstrong (int num) 
    { 
        // Calling order function 
        int n = order(num); 
        int temp=num, sum=0; 
        while (temp!=0) 
        { 
            int r = temp%10; 
            sum = sum + pow(r,n); 
            temp = temp/10; 
        }  
        // If satisfies Armstrong condition 
        return (sum == num); 
    } 
    // Driver Program 
    public static void main(String[] args) 
    { 
        //Take input from the user
        //Create an instance of the Scanner class
        Scanner sc=new Scanner(System.in);
        System.out.println("Enter the number ");
         int num = sc.nextInt(); 
       checkArmstrong obj = new checkArmstrong(); 

        if(obj.isArmstrong(num))
        {
            System.out.println("Yes "+num+" is an Armstrong number");
        }
        else
        {
            System.out.println(num+" is not an Armstrong number");
        }       
    } 
}

输入数字 1634 是的,1634 是阿姆斯特朗数字

程序 2:用 Java 检查阿姆斯特朗号

在这个程序中,我们将看到如何找到 0 到 1000 之间的阿姆斯特朗数。

算法:

  1. 开始

  2. 创建 Scanner 类的实例。

  3. 为该范围声明两个变量。

  4. 要求用户初始化范围。

  5. 声明另外三个变量来存储原始数字、总和和数字。

  6. 使用 for 循环迭代该范围内的所有元素。

  7. 将 temp 变量初始化为循环变量。

  8. 将总和初始化为 0。

  9. 求每个数字的立方之和。

  10. 检查总和是否等于原始数字。

  11. 如果相等,那么这个数字就是阿姆斯特朗。

  12. 如果不相等,那么这个数字就不是阿姆斯特朗。

  13. 显示所有阿姆斯特朗的数字。

  14. 停止

下面是检查阿姆斯特朗号的 Java 代码。

//Java Program to print all the Armstrong Number from 0 to 1000 
import java.util.*;
public class Main
{
     public static void main(String []args)
     {
           //Take input from the user
        //Create an instance of the Scanner class
        Scanner sc=new Scanner(System.in);
        System.out.println("Enter the starting range: ");
        int num1=sc.nextInt();
        System.out.println("Enter the ending range: ");
        int num2=sc.nextInt();
           int temp, digit, sum;

        for (int i = num1; i < num2; i++) {
            temp = i;
            sum = 0;
            while (temp != 0) 
            {
                digit = temp % 10;
                sum = sum + digit * digit * digit;
                temp /= 10;

            }
            if (sum == i)
                System.out.println(i + " is an Armstrong Number");
        }      
     }
}

输入起始范围:0 输入结束范围:1000 0 是阿姆斯特朗号 1 是阿姆斯特朗号 153 是阿姆斯特朗号 370 是阿姆斯特朗号 371 是阿姆斯特朗号 407 是阿姆斯特朗号