Hoe de Armstrong-nummers in Java te controleren?

Hoe De Armstrong Nummers In Java Te Controleren



De ' Armstrong-nummer ” geeft inzicht in getalpatronen en wiskundige eigenschappen. Het helpt bij het begrijpen van getaltheorieconcepten en het verkennen van zelfreferentiële relaties binnen getallen. Bovendien helpt het bij het waarborgen van de nauwkeurigheid van gegevens of gebruikersinvoer. Het kan nuttig zijn wanneer invoerintegriteit cruciaal is.

Deze blog helpt bij het vinden van het Armstrong-nummer voor verstrekte gegevens.







Hoe Armstrong-nummers in Java te controleren?

De ' Armstrong-nummer ” is aangevinkt om getallen te identificeren die voldoen aan een specifieke wiskundige eigenschap. Als de opgegeven waarde gelijk is aan de optelling van de eigen gehele getallen tot de macht van het totale aantal gehele getallen van de opgegeven waarde.



Laten we nu enkele voorbeelden bekijken voor meer begrip:



Voorbeeld 1: Identificatie van de Armstrong-nummers





Bezoek het programma om te controleren of het verstrekte nummer een Armstrong-nummer is of niet:

java.util.Scanner importeren;
// Vereiste hulpprogramma's importeren.
openbare klasse ArmstrongChecker {
openbare statische leegte main ( Snaar [ ] argumenten )
// De belangrijkste declareren ( ) methode
{
Scanner demoTest = nieuwe scanner ( Systeem.in ) ;
Systeem.out.print ( 'Voer het nummer in om te controleren: ' ) ;
int numEle = demoTest.nextInt ( ) ;

int origNum = numEle;
int cijfers = 0 ;
terwijl ( origNum ! = 0 ) {
origNum / = 10 ;
cijfers++;
}

int som = 0 ;
int temp = numEle;
voor ( int ik = 0 ; i < cijfers; ik++ ) {
int Jij = temp % 10 ;
som += Wiskunde.pow ( Jij , cijfers ) ;
temp / = 10 ;
}

als ( som == namen ) {
Systeem.out.println ( namen + ' is een Armstrong-nummer.' ) ;
} anders {
Systeem.out.println ( namen + 'Voldoet niet aan voorwaarde voor Armstrong-nummer.' ) ;
}
}
}


Beschrijving van de bovenstaande code:



    • Ten eerste, het object voor de ' Scanner ” klasse is gemaakt om een ​​geheel getal van de eindgebruiker op te halen met behulp van de “ volgendeInt() ' methode en sla de opgehaalde gegevens op in een variabele met de naam ' NAMEN ”.
    • Vervolgens wordt deze opgehaalde waarde toegewezen aan de variabele int type met de naam ' origNum ” en initialiseert een variabele met de naam “ cijfers ' met ' 0 ”.
    • Dan de ' terwijl ” lus wordt gebruikt die origNum herhaaldelijk door 10 deelt en de variabele cijfers elke keer verhoogt totdat origNum 0 wordt.
    • Declareer daarna een variabele ' som ” en stel de waarde in van “ NAMEN ' naar de ' temp ” variabel. En maakt gebruik van de “ voor ” lus die herhaald wordt tot de “ cijfers 'variabele waarde.
    • En in elke iteratie van de 'for'-lus wordt het laatste cijfer van ' temp ” wordt geëxtraheerd met behulp van de modulus-operator en opgeslagen in een nieuwe variabele “ Jij ”. Vervolgens wordt de kubus van het cijfer toegevoegd aan de ' som ” variabele met behulp van de Math.pow() methode.
    • Op het einde, de “ als/anders ”-instructie wordt gebruikt om te bepalen of de berekende som gelijk is aan het oorspronkelijk door de gebruiker verstrekte getal. Als beide waarden gelijk zijn, dan is het verstrekte getal een Armstrong-getal en vice versa.

Na de compilatie:


De uitvoer laat zien dat het opgegeven nummer een Armstrong-nummer is.

Voorbeeld 2: Zoek alle inwonende Armstrong-nummers binnen de opgegeven limiet

Ga naar de onderstaande code om alle Armstrong-nummers te vinden voor de opgegeven waarde of limiet:

java.util.Scanner importeren;
java.lang.Math importeren;

public class ArmstsrongNumberExample
{
statische boolean isArmsNum ( int j ) {
int buff, zingenDig = 0 , einde = 0 , berekend = 0 ;
buff =j;
terwijl ( buff > 0 ) {
buff = buff / 10 ;
singDig++;
}
buff = j;
terwijl ( buff > 0 )
{
einde = buff % 10 ;
reken += ( Wiskunde.pow ( einde, singDig ) ) ;
buff = buff / 10 ;
}
als ( J ==berekend )
opbrengst WAAR ;
anders opbrengst vals ;
}
openbare statische leegte main ( Tekenreeksargumenten [ ] )
// De belangrijkste declareren ( ) methode
{
int proNum;
Scanner sc = nieuwe scanner ( Systeem.in ) ;
Systeem.out.print ( 'Voer de bovengrens in: ' ) ;
proNum =sc.volgendeInt ( ) ;
Systeem.out.println ( 'Armstrong-nummer tot opgegeven limiet' + proNum + ' Zijn: ' ) ;
voor ( int k = 0 ; k < =voorGetal; k++ )
als ( isArmsNum ( k ) )
Systeem.out.print ( k+ ', ' ) ;
}
}


Uitleg van de bovenstaande code:

    • Declareer eerst meerdere variabelen 'buff', 'singDig', 'end' en 'calc' met een type ' int ”, binnen de methode van het booleaanse type met de naam “ isArmsNum() ”. Het ontvangt een parameter die is toegewezen aan de variabele met de naam ' buff ”.
    • Vervolgens de “ terwijl ' Er wordt een lus gedeclareerd die wordt herhaald totdat de buff-waarde ' 0 ”. Daarna is de “ buff ” is modulus door “ 10 ' om het laatste cijfer van de opgegeven waarde te verwijderen en verhoogt de ' zingenDig ” variabel.
    • Dan de ' terwijl ' lus wordt opnieuw gebruikt over de ' buff ” variabele om het laatste cijfer te extraheren. De derde macht van het cijfer wordt berekend door gebruik te maken van de ' Wiskunde. hoera() ' methode en vervolgens toegevoegd aan de ' berekend ” variabel.
    • Nu de ' als ” statement wordt gebruikt om te controleren of de berekende waarde in de “ berekend ” variabele is gelijk aan de opgegeven waarde door de eindgebruiker of niet. Geef het bericht ook dienovereenkomstig weer.
    • Daarna wordt de input van de eindgebruiker opgehaald met behulp van de “ Scanner ' hulpprogramma in de ' voornaamst() ” methode.
    • Op het einde, de “ voor ” lus wordt gebruikt die itereert tot de opgegeven waarde, en elke iteratie wordt de “ isArmsNum() ” methode. Deze methode ontvangt alle waarden totdat de opgegeven waarde is bereikt en controleert elke waarde op het Armstrong-nummer.

Na de compilatie:


De uitvoer geeft alle Armstrong-nummers weer tot de opgegeven waarde die ' 370 ' in dit geval.

Conclusie

Om een ​​Armstrong-nummer te vinden, telt u eerst de cijfers die het verstrekte nummer bevat. Haal vervolgens elk cijfer één voor één uit het verstrekte getal met behulp van modulus- en delingsbewerkingen. Verhef vervolgens elk geheel getal van de waarde tot de macht van het totale aantal gehele getallen en tel de resulterende waarde op bij een nieuwe variabele. Controleer ten slotte of de verkregen variabelewaarde gelijk is aan het opgegeven getal, als het gelijk is, is het opgegeven getal een Armstrong-getal, anders niet.