Care este numărul Armstrong în Java? Este vorba despre cerințe preliminare și algoritm

Publicat: 2021-04-08

Cuprins

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:

  1. Luați o variabilă întreagă x
  2. Valoarea este atribuită variabilei x
  3. Cifrele valorii sunt împărțite
  4. Se găsește valoarea cubului fiecărei cifre
  5. Adăugați valorile tuturor cuburilor
  6. Ieșirea este salvată în variabila sumă
  7. 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.

Deveniți un dezvoltator Full Stack

UPGRAD SI DIPLOMA PG IN DEZVOLTARE DE SOFTWARE LUI IIIT-BANGALORE
ÎNSCRIEȚI ACUM @ UPGRAD