Hvordan sjekke Armstrong-numrene i Java?

Hvordan Sjekke Armstrong Numrene I Java



« Armstrong nummer ” gir innsikt i tallmønstre og matematiske egenskaper. Det hjelper med å forstå tallteoretiske konsepter og utforske selvrefererende forhold innenfor tall. I tillegg hjelper det med å sikre nøyaktigheten av data eller brukerinndata. Det kan være nyttig der inputintegritet er avgjørende.

Denne bloggen hjelper deg med å finne Armstrong-nummeret for oppgitte data.







Hvordan sjekke Armstrong-numre i Java?

« Armstrong nummer ” er krysset av for å identifisere tall som tilfredsstiller en spesifikk matematisk egenskap. Hvis den oppgitte verdien er den samme som tillegget av sine egne heltall hevet til potensen av det totale antallet heltall for den oppgitte verdien.



La oss nå se noen eksempler for mer forståelse:



Eksempel 1: Identifisere Armstrong-numrene





Besøk programmet for å sjekke om det oppgitte nummeret er Armstrong-nummeret eller ikke:

importer java.util.Scanner;
// Importere nødvendige verktøy.
offentlig klasse ArmstrongChecker {
offentlig statisk tomrom hoved ( String [ ] args )
// Erklærer det viktigste ( ) metode
{
Skanner demoTest = ny skanner ( System.in ) ;
System.ut.utskrift ( 'Skriv inn nummeret for å sjekke: ' ) ;
int numEle = demoTest.nextInt ( ) ;

int origNum = numEle;
int siffer = 0 ;
samtidig som ( opprinneligNum ! = 0 ) {
opprinneligNum / = 10 ;
sifre++;
}

int sum = 0 ;
int temp = numEle;
til ( int i = 0 ; Jeg < sifre; i++ ) {
int du = temp % 10 ;
sum += Math.pow ( du , sifre ) ;
temp / = 10 ;
}

hvis ( sum == navn ) {
System.out.println ( navn + 'er et Armstrong-nummer.' ) ;
} ellers {
System.out.println ( navn + ' tilfredsstiller ikke betingelsen for Armstrong-nummer.' ) ;
}
}
}


Beskrivelse av koden ovenfor:



    • Først, objektet for ' Skanner '-klassen er opprettet for å hente et heltall fra sluttbrukeren ved å bruke ' nextInt() '-metoden og lagre de hentede dataene i en variabel kalt ' NAVN '.
    • Deretter tildeles denne hentede verdien til variabelen int type kalt ' opprinneligNum ' og initialiserer en variabel kalt ' sifre ' med ' 0 '.
    • Og så ' samtidig som ”-løkke brukes som gjentatte ganger deler origNum med 10 og øker sifrevariabelen hver gang til origNum blir 0.
    • Deretter erklærer du en variabel ' sum ' og angi verdien til ' NAVN ' til ' temp variabel. Og bruker ' til '-løkke som itererer til ' sifre ' variabel verdi.
    • Og i hver 'for'-løkkeiterasjon, det siste sifferet i ' temp ' trekkes ut ved hjelp av modulusoperatoren og lagres i en ny variabel ' du '. Deretter legges kuben til sifferet til ' sum variabel ved hjelp av Math.pow()-metoden.
    • Til slutt, ' hvis/annet ”-uttalelsen brukes til å bestemme om den beregnede summen er lik det opprinnelige oppgitte tallet av brukeren. Hvis begge verdiene er like, er det angitte tallet et Armstrong-tall og omvendt.

Etter kompileringen:


Utdataene viser at det oppgitte nummeret er et Armstrong-nummer.

Eksempel 2: Finn alle bosatt Armstrong-numre innenfor den angitte grensen

For å finne alle Armstrong-numrene til den angitte verdien eller grensen, besøk koden nedenfor:

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

offentlig klasse ArmstsrongNumberExample
{
statisk boolsk erArmsNum ( int j ) {
int buff, syngeDig = 0 , slutt = 0 , beregnet = 0 ;
buff =j;
samtidig som ( buff > 0 ) {
buff = buff / 10 ;
singDig++;
}
buff = j;
samtidig som ( buff > 0 )
{
slutt = buff % 10 ;
beregnet += ( Math.pow ( slutt, syngeDig ) ) ;
buff = buff / 10 ;
}
hvis ( j ==beregnet )
komme tilbake ekte ;
ellers komme tilbake falsk ;
}
offentlig statisk tomrom hoved ( String args [ ] )
// Erklærer det viktigste ( ) metode
{
int proNum;
Skanner sc = ny skanner ( System.in ) ;
System.ut.utskrift ( 'Sett inn øvre grense: ' ) ;
proNum =sc.nextInt ( ) ;
System.out.println ( 'Armstrong-nummer opp til oppgitt grense' + proNum + 'er:' ) ;
til ( int k = 0 ; k < =forNum; k++ )
hvis ( er ArmsNum ( k ) )
System.ut.utskrift ( k+ ', ' ) ;
}
}


Forklaring av koden ovenfor:

    • Først erklærer du flere variabler 'buff', 'singDig', 'end' og 'calc' som har en type ' int ', inne i den boolske typemetoden kalt ' isArmsNum() '. Den mottar en parameter som er tilordnet variabelen kalt ' buff '.
    • Deretter ' samtidig som ' loop er deklarert som itererer til buff-verdien når ' 0 '. Etter det, ' buff ' er modul av ' 10 ' for å fjerne det siste sifferet fra den angitte verdien og øker ' syngeDig variabel.
    • Og så ' samtidig som '-løkken brukes igjen over ' buff ” variabel for å trekke ut det siste sifferet. Kuben av sifferet beregnes ved å bruke ' Matte. pow() '-metoden og deretter lagt til ' beregnet variabel.
    • Nå, ' hvis '-setning brukes til å kontrollere om den beregnede verdien i ' beregnet variabelen er lik den oppgitte verdien av sluttbrukeren eller ikke. Vis også meldingen tilsvarende.
    • Etter det hentes innspillet fra sluttbrukeren ved hjelp av ' Skanner ' verktøyet i ' hoved() 'metoden.
    • Til slutt, ' til '-løkke brukes som itererer til den angitte verdien, og hver iterasjon kalles ' isArmsNum() 'metoden. Denne metoden mottar alle verdier til den angitte verdien er nådd og sjekker hver verdi for Armstrong-nummeret.

Etter kompileringen:


Utgangen viser alle Armstrong-tall til den angitte verdien som er ' 370 ' i dette tilfellet.

Konklusjon

For å finne et Armstrong-nummer, tell først sifrene det oppgitte nummeret inneholder. Trekk deretter ut hvert siffer fra det angitte tallet en etter en ved hjelp av modul- og divisjonsoperasjoner. Deretter hever du hvert heltall av verdien til potensen av det totale antallet heltall og legger til den resulterende verdien til en ny variabel. Til slutt, sjekk om den oppnådde variabelverdien er lik det angitte tallet, hvis det er likt, er det angitte tallet et Armstrong-tall, ellers ikke.