Care este numărul Armstrong în Java? Este vorba despre cerințe preliminare și algoritm
Publicat: 2021-04-08Cuprins
Care este numărul Armstrong?
Un număr dat x se numește un număr Armstrong de ordinul n dacă este egal cu suma cifrelor sale ridicate la puterea n, adică:
abc= pow(a,n) + pow(b,n) + pow(c,n)
Un număr întreg pozitiv de n cifre este un număr Armstrong (de ordinul 3) dacă este egal cu suma cuburilor cifrelor sale. De exemplu:
Intrare: 153
Ieșire: Da
1*1*1 + 5*5*5 + 3*3*3 = 153
Astfel, 153 este un număr Armstrong
Intrare: 121
Ieșire: Nu
1*1*1 + 2*2*2 + 1*1*1 = 10
Astfel, 120 nu este un număr Armstrong.
Cerințe preliminare și algoritm
În acest articol, vom învăța să verificăm dacă un număr de intrare este un număr Armstrong sau nu. Pentru aceasta, vom folosi o buclă while și bucla for în Java. Pentru a înțelege acest program, avem nevoie de cunoștințe despre următoarele subiecte în Java:
- Declarație Java if-else
- Java pentru buclă
- buclă Java while și do-while
Algoritm:
- Luați o variabilă întreagă x
- Valoarea este atribuită variabilei x
- Cifrele valorii sunt împărțite
- Se găsește valoarea cubului fiecărei cifre
- Adăugați valorile tuturor cuburilor
- Ieșirea este salvată în variabila sumă
- Dacă suma=X, tipăriți numărul Armstrong
Dacă suma != X, se imprimă nu numărul Armstrong
Program pentru a verifica numărul Armstrong în Java
1. Numărul Armstrong în Java de ordinul 3
Cod:
clasă publică Armstrong{
public static void main(String[] args) {
int x=0,a,temp;
int n=153;//Este numărul de verificat pe Armstrong
temp=n;
în timp ce(n>0)
{
a=n%10;
n=n/10;
x=x+(a*a*a);
}
if(temp==x)
System.out.println(„Numărul Armstrong”);
altfel
System.out.println(„Nu numărul Armstrong”);
}
}
Ieșire:
Explicaţie
Mai întâi, valoarea unui număr dat N este stocată într-o altă variabilă întreagă, x. Acest lucru se face deoarece trebuie să comparăm valorile numărului inițial și ale numărului final de la sfârșit. O buclă while este folosită pentru a parcurge numărul N până când acesta este egal cu 0. La fiecare iterație, ultima cifră a lui N este stocată în a.
Apoi rezultatul este calculat prin cubând a sau folosind Math. pow() și adăugându-l la x. Când ultima cifră este eliminată din N, aceasta este împărțită la 10. În cele din urmă =, temp și X sunt comparate. Dacă sunt egale, este un număr Armstrong. Altfel, nu este.
2. Numărul Armstrong în Java de ordinul n
Cod:
clasă publică Armstrong
{
/* Funcție pentru a calcula o valoare ridicată la
putere b */
int putere (int a, long b)
{
dacă ( b == 0)
întoarcere 1;
dacă (b%2 == 0)
putere returnată(a, b/2)*putere(a, b/2);
returnează a*putere(a, b/2)*putere(a, b/2);
}
/* Funcție de calculare a ordinii numărului */
int order(int a)
{
int n = 0;
în timp ce (a != 0)
{
n++;
a = a/10;
}
întoarcere n;
}
// Funcție pentru a verifica dacă numărul dat este numărul Armstrong sau nu
boolean Armstrong (int a)
{
// Apelarea funcției de comandă
int n = ordin(a);
int temp=a, sum=0;
în timp ce (temp!=0)
{
int r = temp%10;
suma = suma + puterea(r,n);
temp = temp/10;
}
// Dacă îndeplinește condiția Armstrong
returnare (suma == a);
}
// Programul driverului
public static void main(String[] args)
{
Armstrong obj = nou Armstrong();
int a = 153;
System.out.println(obj.isArmstrong(a));
a = 1276;
System.out.println(obj.isArmstrong(a));
}
}
Ieșire :
Explicaţie
În acest program, în loc de o buclă while, am folosit recursiunea. Prima funcție este folosită pentru a calcula un număr a ridicat la puterea b. Math.pow(a,b) poate fi folosit și pentru același lucru. A doua funcție verifică ordinea numărului, cum ar fi, 153 este de ordinul 3. În cele din urmă, o funcție booleană Armstrong este folosită pentru a reveni dacă numărul este Armstrong sau nu. Apoi un obiect din clasa Armstrong este folosit pentru a apela funcțiile.
Program Java pentru a imprima numere Armstrong în intervalul dat
Cod:
clasă publică Armstrong
{
public static void main(String[] arg)
{
int i=0,x;
System.out.println(„Numerele Armstrong între 0 și 999”);
în timp ce(i<1000)
{
x=armstrongOrNot(i);
daca(x==i)
System.out.println(i);
i++;
}
}
static int armstrongOrNot(int n)
{
int c,a=0;
în timp ce(n!=0)
{
c=n%10;
a=a+(c*c*c);
n/=10;
}
returnează a;
}
}
Ieșire:
Explicație: În acest program, fiecare număr dintre intervalul dat scăzut și ridicat este verificat. Postați fiecare cec, suma și numărul de cifre sunt restaurate la 0.
Concluzie
În acest articol, am acoperit în detaliu un număr Armstrong în java. Am văzut cum să verificăm dacă un număr este un număr Armstrong de ordinul n și de ordinul 3. Am văzut, de asemenea, cum ați putea obține toate numerele Armstrong între o limită inferioară și superioară.
Dacă doriți să vă îmbunătățiți abilitățile Java, trebuie să puneți mâna pe aceste proiecte Java. Dacă sunteți interesat să aflați mai multe despre Java, dezvoltarea full-stack, consultați programul Executive PG de la upGrad și IIIT-B pentru dezvoltarea software full-stack, care este conceput pentru profesioniști care lucrează și oferă peste 500 de ore de formare riguroasă, peste 9 proiecte , și misiuni, statutul de absolvenți IIIT-B, proiecte practice practice și asistență pentru locuri de muncă cu firme de top.
Dacă doriți să aflați mai multe despre Java și să vă avansați în cariera tehnică, atunci explorați cursul online gratuit Java oferit de cea mai mare companie online de învățământ superior din India, upGrad. Contactați-ne pentru mai multe detalii.