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:
-
Start
-
Opret en forekomst af Scanner-klassen.
-
Deklarer en variabel.
-
Bed brugeren om at initialisere nummeret.
-
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.
-
Beregn det samlede antal cifre i rækkefølge ved hjælp af en while-løkke.
-
Beregn værdien af cifferet hævet til effektrækkefølgen.
-
I isArmstrong-metoden skal du kontrollere, om det indtastede nummer er Armstrong eller ej.
-
Hvis fundet Armstrong, så returner true ellers returner falsk.
-
Hvis det er sandt, så udskriv en besked om, at det indtastede nummer er en Armstrong.
-
Hvis falsk, så udskriv en besked om, at det indtastede nummer ikke er et Armstrong.
-
Vis beskeden.
-
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:
-
Start
-
Opret en forekomst af Scanner-klassen.
-
Deklarer to variable for området.
-
Bed brugeren om at initialisere området.
-
Deklarer tre andre variable for at gemme det oprindelige tal, sum og ciffer.
-
Brug en for-løkke til at gentage alle elementerne inden for dette område.
-
Initialiser temp-variablen til loop-variablen.
-
Initialiser summen til 0.
-
Find summen af terninger af hvert ciffer.
-
Tjek om summen er lig med det oprindelige tal.
-
Hvis det er lige, så er tallet Armstrong.
-
Hvis det ikke er ens, så er tallet ikke Armstrong.
-
Vis alle Armstrong-numrene.
-
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