Hvordan tjekker man Armstrong-numrene i Java?

Hvordan Tjekker Man Armstrong Numrene I Java



Det ' Armstrong nummer ” giver indsigt i talmønstre og matematiske egenskaber. Det hjælper med at forstå talteoretiske begreber og udforske selvrefererende forhold inden for tal. Derudover hjælper det med at sikre nøjagtigheden af ​​data eller brugerinput. Det kan være nyttigt, hvor inputintegritet er afgørende.

Denne blog hjælper med at finde Armstrong-nummeret for angivne data.







Hvordan tjekker man Armstrong-numre i Java?

Det ' Armstrong nummer ” er markeret for at identificere tal, der opfylder en specifik matematisk egenskab. Hvis den angivne værdi er den samme som tilføjelsen af ​​dens egne heltal hævet til potensen af ​​det samlede antal heltal af den angivne værdi.



Lad os nu besøge nogle eksempler for mere forståelse:



Eksempel 1: Identifikation af Armstrong-numrene





Besøg programmet for at kontrollere, om det angivne nummer er Armstrong-nummeret eller ej:

import java.util.Scanner;
// Importer nødvendige hjælpeprogrammer.
offentlig klasse ArmstrongChecker {
offentlig statisk tomrum hoved ( Snor [ ] args )
// Erklærer det vigtigste ( ) metode
{
Scanner demoTest = ny scanner ( System.in ) ;
System.out.print ( 'Indtast nummer for at kontrollere:' ) ;
int numEle = demoTest.nextInt ( ) ;

int origNum = numEle;
int cifre = 0 ;
mens ( oprindeligNum ! = 0 ) {
oprindeligNum / = 10 ;
cifre++;
}

int sum = 0 ;
int temp = numEle;
til ( int i = 0 ; jeg < cifre; i++ ) {
int dig = temp % 10 ;
sum += Math.pow ( dig , cifre ) ;
Midlertidig / = 10 ;
}

hvis ( sum == navne ) {
System.out.println ( navne + 'er et Armstrong-nummer.' ) ;
} andet {
System.out.println ( navne + 'Opfylder ikke betingelsen for Armstrong nummer.' ) ;
}
}
}


Beskrivelse af ovenstående kode:



    • For det første objektet for ' Scanner ” klasse er oprettet for at hente et heltal fra slutbrugeren ved hjælp af “ nextInt() ”-metoden og gem de hentede data i en variabel ved navn “ NAVNE ”.
    • Dernæst tildeles denne hentede værdi til int type variabel med navnet ' oprindeligNum ' og initialiserer en variabel ved navn ' cifre ' med ' 0 ”.
    • Derefter ' mens ”-løkke bruges, der gentagne gange dividerer origNum med 10 og inkrementerer cifre-variablen hver gang, indtil origNum bliver 0.
    • Derefter erklærer du en variabel ' sum ' og indstil værdien af ​​' NAVNE ' til ' Midlertidig ' variabel. Og bruger ' til ' sløjfe, der gentager sig indtil ' cifre variabel værdi.
    • Og i hver 'for' loop iteration, det sidste ciffer af ' Midlertidig ” udtrækkes ved hjælp af modulusoperatoren og gemmes i en ny variabel ” dig ”. Derefter tilføjes cifferets terning til ' sum ” variabel ved hjælp af Math.pow() metoden.
    • I sidste ende vil ' hvis ellers ”-udtalelsen bruges til at bestemme, om den beregnede sum er lig med det oprindelige oplyste nummer af brugeren. Hvis begge værdier er ens, så er det angivne tal et Armstrong-tal og omvendt.

Efter kompileringen:


Outputtet viser, at det angivne nummer er et Armstrong-nummer.

Eksempel 2: Find alle bosiddende Armstrong-numre inden for den angivne grænse

Besøg nedenstående kode for at finde alle Armstrong-numrene til den angivne værdi eller grænse:

import java.util.Scanner;
import java.lang.Math;

offentlig klasse ArmstsrongNumberExample
{
statisk boolesk erArmsNum ( int j ) {
int buff, syngeDig = 0 , ende = 0 , beregnet = 0 ;
buff =j;
mens ( buff > 0 ) {
buff = buff / 10 ;
singDig++;
}
buff = j;
mens ( buff > 0 )
{
ende = buff % 10 ;
beregnet += ( Math.pow ( ende, syngeDig ) ) ;
buff = buff / 10 ;
}
hvis ( j == beregnet )
Vend tilbage rigtigt ;
andet Vend tilbage falsk ;
}
offentlig statisk tomrum hoved ( Streng args [ ] )
// Erklærer det vigtigste ( ) metode
{
int proNum;
Scanner sc = ny scanner ( System.in ) ;
System.out.print ( 'Indsæt den øvre grænse: ' ) ;
proNum =sc.nextInt ( ) ;
System.out.println ( 'Armstrong nummer op til angivet grænse' + proNum + ' er: ' ) ;
til ( int k = 0 ; k < =forNum; k++ )
hvis ( er ArmsNum ( k ) )
System.out.print ( k+ ', ' ) ;
}
}


Forklaring af ovenstående kode:

    • Først skal du erklære flere variabler 'buff', 'singDig', 'end' og 'calc' med typen ' int ', inde i den boolske type metode med navnet ' isArmsNum() ”. Den modtager en parameter, der er tildelt variablen med navnet ' buff ”.
    • Dernæst ' mens ' loop er erklæret, som itererer indtil buff-værdien når ' 0 ”. Derefter vil ' buff ' er modul ved ' 10 ' for at fjerne det sidste ciffer fra den angivne værdi og øger ' syngeDig ' variabel.
    • Derefter ' mens ”-løkke bruges igen over ” buff variabel for at udtrække det sidste ciffer. Cifferets terning beregnes ved at bruge ' Matematik. pow() '-metoden og derefter tilføjet til ' beregnet ' variabel.
    • Nu, ' hvis '-udsagn bruges til at kontrollere, om den beregnede værdi i ' beregnet variabel er lig med den angivne værdi af slutbrugeren eller ej. Vis også meddelelsen i overensstemmelse hermed.
    • Derefter hentes input fra slutbrugeren ved hjælp af ' Scanner ' værktøj i ' hoved() ” metode.
    • I sidste ende vil ' til '-løkke bruges, der itererer indtil den angivne værdi, og hver iteration kaldes ' isArmsNum() ” metode. Denne metode modtager alle værdier, indtil den angivne værdi er nået, og kontrollerer hver værdi for Armstrong-tallet.

Efter kompileringen:


Outputtet viser alle Armstrong-numre indtil den angivne værdi, som er ' 370 ' I dette tilfælde.

Konklusion

For at finde et Armstrong-nummer skal du først tælle de cifre, som det angivne nummer indeholder. Udtræk derefter hvert ciffer fra det angivne tal et efter et ved hjælp af modul- og divisionsoperationer. Hæv derefter hvert heltal af værdien til potensen af ​​det samlede antal heltal og tilføj den resulterende værdi til en ny variabel. Til sidst skal du kontrollere, om den opnåede variabelværdi er lig med det angivne tal, hvis det er lig, er det angivne tal et Armstrong-tal, ellers ikke.