Java >> Java tutorial >  >> Java

Java-program til at kontrollere Armstrong-nummer

I dette selvstudie lærer vi, hvordan man kontrollerer, om nummeret er Armstrong eller ej.

Et antal n cifre siges at være et Armstrong-tal, hvis summen af ​​hvert ciffer hævet til potensen n er lig med selve tallet. for eksempel siges et 3-cifret tal at være et Armstrong-tal, hvis summen af ​​cifferets terninger er lig med selve tallet.

Men før du går videre, hvis du ikke er bekendt med begrebet loops i java, så tjek artiklen om Loops in Java

Input: Indtast nummeret:153

Output: Ja, det indtastede nummer 153 er et Armstrong-nummer.

Java-program til at kontrollere Armstrong-nummeret

I dette program vil vi se, hvordan man finder ud af, om et tal er Armstrong eller ej.

Algorithme:

  1. Start

  2. Opret en forekomst af Scanner-klassen.

  3. Deklarer en variabel.

  4. Bed brugeren om at initialisere nummeret.

  5. Definer 3 metoder, en til at kontrollere Armstrong, en anden til at beregne rækkefølgen og en anden til at beregne den hævede til effektværdien.

  6. Beregn det samlede antal cifre i rækkefølge ved hjælp af en while-løkke.

  7. Beregn værdien af ​​cifferet hævet til effektrækkefølgen.

  8. I isArmstrong-metoden skal du kontrollere, om det indtastede nummer er Armstrong eller ej.

  9. Hvis fundet Armstrong, så returner true ellers returner falsk.

  10. Hvis det er sandt, så udskriv en besked om, at det indtastede nummer er en Armstrong.

  11. Hvis falsk, så udskriv en besked om, at det indtastede nummer ikke er et Armstrong.

  12. Vis beskeden.

  13. Stop.

Nedenfor er Java-koden til at kontrollere Armstrong-nummeret.

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


Indtast tallet 1634
Ja 1634 er et Armstrong-nummer

Program 2:Tjek Armstrong-nummer i Java

I dette program vil vi se, hvordan man finder Armstrong-tallene mellem 0 og 1000.

Algorithme:

  1. Start

  2. Opret en forekomst af Scanner-klassen.

  3. Deklarer to variable for området.

  4. Bed brugeren om at initialisere området.

  5. Deklarer tre andre variable for at gemme det oprindelige tal, sum og ciffer.

  6. Brug en for-løkke til at gentage alle elementerne inden for dette område.

  7. Initialiser temp-variablen til loop-variablen.

  8. Initialiser summen til 0.

  9. Find summen af ​​terninger af hvert ciffer.

  10. Tjek om summen er lig med det oprindelige tal.

  11. Hvis det er lige, så er tallet Armstrong.

  12. Hvis det ikke er ens, så er tallet ikke Armstrong.

  13. Vis alle Armstrong-numrene.

  14. Stop

Nedenfor er Java-koden til at kontrollere Armstrong-nummeret.

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


Indtast startområdet:0
Indtast slutområdet:1000
0 er et Armstrong-tal
1 er et Armstrong-tal
153 er et Armstrong-tal
370 er et Armstrong-nummer
371 er et Armstrong-nummer
407 er et Armstrong-nummer


Java tag