Kuinka tarkistaa Armstrong-numerot Javassa?

Kuinka Tarkistaa Armstrong Numerot Javassa



' Armstrongin numero ” tarjoaa näkemyksiä numerokuvioista ja matemaattisista ominaisuuksista. Se auttaa ymmärtämään lukuteorian käsitteitä ja tutkimaan itseviittaussuhteita numeroiden sisällä. Lisäksi se auttaa varmistamaan tietojen tai käyttäjän syöttämien tietojen tarkkuuden. Siitä voi olla hyötyä, kun syötteen eheys on ratkaisevan tärkeää.

Tämä blogi auttaa löytämään Armstrong-numeron toimitetuille tiedoille.







Kuinka tarkistaa Armstrong-numerot Javassa?

' Armstrongin numero ” tarkistetaan, jotta voidaan tunnistaa numerot, jotka täyttävät tietyn matemaattisen ominaisuuden. Jos annettu arvo on sama kuin sen omien kokonaislukujen yhteenlaskettu arvo korotettuna annetun arvon kokonaislukujen kokonaismäärän potenssiin.



Katsotaanpa nyt joitain esimerkkejä ymmärtääksemme paremmin:



Esimerkki 1: Armstrong-numeroiden tunnistaminen





Käy ohjelmassa tarkistaaksesi, onko annettu numero Armstrongin numero vai ei:

tuonti java.util.Scanner;
// Tuodaan tarvittavat apuohjelmat.
julkisen luokan ArmstrongChecker {
julkinen static void main ( merkkijono [ ] args )
// Pääasiallisen julistaminen ( ) menetelmä
{
Skannerin demoTest = uusi skanneri ( System.in ) ;
System.out.print ( 'Syötä numero tarkistettavaksi:' ) ;
int numEle = demoTest.nextInt ( ) ;

int origNum = numEle;
int numerot = 0 ;
sillä aikaa ( origNum ! = 0 ) {
origNum / = 10 ;
numerot++;
}

int summa = 0 ;
int temp = numEle;
varten ( int i = 0 ; i < numerot; i++ ) {
int sinä = lämpötila % 10 ;
summa += Math.pow ( sinä , numeroita ) ;
lämpötila / = 10 ;
}

jos ( summa == nimet ) {
System.out.println ( nimet + 'on Armstrongin numero.' ) ;
} muu {
System.out.println ( nimet + ' ei täytä Armstrong-numeron ehtoa.' ) ;
}
}
}


Kuvaus yllä olevasta koodista:



    • Ensinnäkin kohteen ' Skanneri ' luokka on luotu hakemaan kokonaisluku loppukäyttäjältä käyttämällä ' nextInt() ' -menetelmää ja tallenna haetut tiedot muuttujaan nimeltä ' NIMET ”.
    • Seuraavaksi tämä haettu arvo määritetään int-tyyppiselle muuttujalle nimeltä ' origNum ' ja alustaa muuttujan nimeltä ' numeroita ' kanssa ' 0 ”.
    • Sitten ' sillä aikaa '-silmukkaa käytetään, joka jakaa toistuvasti origNum:n 10:llä ja lisää numeromuuttujaa joka kerta, kunnes origNum muuttuu 0:ksi.
    • Ilmoita sen jälkeen muuttuja ' summa ja aseta arvo NIMET ' kohtaan ' lämpötila ”muuttuja. Ja käyttää ' varten 'silmukka, joka toistuu ' numeroita ”muuttuva arvo.
    • Ja kussakin 'for' -silmukan iteraatiossa '':n viimeinen numero lämpötila ' erotetaan moduulioperaattorilla ja tallennetaan uuteen muuttujaan ' sinä ”. Sitten numeron kuutio lisätään sitten ' summa ”-muuttuja käyttäen Math.pow()-menetelmää.
    • Lopulta ' tai muuten ” -lausetta käytetään määrittämään, onko laskettu summa yhtä suuri kuin käyttäjän alkuperäinen antama luku. Jos molemmat arvot ovat samat, annettu luku on Armstrongin luku ja päinvastoin.

Kokoonpanon jälkeen:


Tulos näyttää, että annettu numero on Armstrong-numero.

Esimerkki 2: Etsi kaikki Armstrongin numerot annetussa rajassa

Löydät kaikki Armstrong-numerot annettuun arvoon tai rajaan tutustumalla alla olevaan koodiin:

tuonti java.util.Scanner;
tuonti java.lang.Math;

julkinen luokka ArmstsrongNumberEsimerkki
{
staattinen boolean isArmsNum ( int j ) {
int buff, singDig = 0 , loppu = 0 , lask = 0 ;
harrastaja =j;
sillä aikaa ( harrastaja > 0 ) {
buff = buff / 10 ;
singDig++;
}
buff = j;
sillä aikaa ( harrastaja > 0 )
{
loppu = buff % 10 ;
laske += ( Math.pow ( lopeta, laulaDig ) ) ;
buff = buff / 10 ;
}
jos ( j ==lask )
palata totta ;
muu palata väärä ;
}
julkinen static void main ( String args [ ] )
// Pääasiallisen julistaminen ( ) menetelmä
{
int proNum;
Skanneri sc = uusi skanneri ( System.in ) ;
System.out.print ( 'Insert Upper Limit:' ) ;
proNum =sc.nextInt ( ) ;
System.out.println ( 'Armstrong-numero annettuun rajaan asti' + proNum + ' ovat: ' ) ;
varten ( int k = 0 ; k < =forNum; k++ )
jos ( isArmsNum ( k ) )
System.out.print ( k+ ', ' ) ;
}
}


Selitys yllä olevalle koodille:

    • Ilmoita ensin useita muuttujia 'buff', 'singDig', 'end' ja 'calc', joiden tyyppi on ' int , boolen tyyppisen menetelmän sisällä nimeltä ' isArmsNum() ”. Se vastaanottaa parametrin, joka on määritetty muuttujalle nimeltä ' harrastaja ”.
    • Seuraavaksi ' sillä aikaa 'silmukka ilmoitetaan, joka toistuu, kunnes buff-arvo saavuttaa' 0 ”. Sen jälkeen ' harrastaja ' on moduuli '' 10 ' poistaaksesi viimeisen numeron annetusta arvosta ja lisätäksesi ' singDig ”muuttuja.
    • Sitten ' sillä aikaa 'silmukkaa käytetään uudelleen' harrastaja ”-muuttuja poimimaan viimeisen numeron. Numeron kuutio lasketaan käyttämällä ' Matematiikka. pow() -menetelmä ja lisätään sitten kohtaan ' lask ”muuttuja.
    • Nyt ' jos -lausetta käytetään tarkistamaan, onko laskettu arvo lask ” muuttuja on yhtä suuri kuin loppukäyttäjän antama arvo vai ei. Näytä myös viesti vastaavasti.
    • Tämän jälkeen loppukäyttäjän syöte noudetaan ' Skanneri ' apuohjelma ' pää() ”menetelmä.
    • Lopulta ' varten 'silmukkaa käytetään, joka toistuu annettuun arvoon asti, ja jokaista iteraatiota kutsutaan ' isArmsNum() ”menetelmä. Tämä menetelmä vastaanottaa kaikki arvot, kunnes annettu arvo saavutetaan, ja tarkistaa jokaisen arvon Armstrong-luvun suhteen.

Kokoonpanon jälkeen:


Tulos näyttää kaikki Armstrong-numerot annettuun arvoon, joka on ' 370 ' tässä tapauksessa.

Johtopäätös

Löytääksesi Armstrong-luvun, laske ensin annetussa numerossa olevat numerot. Poimi sitten jokainen numero annetusta numerosta yksitellen moduuli- ja jakooperaatioiden avulla. Seuraavaksi nosta jokainen arvon kokonaisluku kokonaislukujen kokonaismäärän potenssiin ja lisää tuloksena oleva arvo uuteen muuttujaan. Tarkista lopuksi, onko saatu muuttujan arvo yhtä suuri kuin annettu luku, jos se on yhtä suuri, annettu luku on Armstrong-luku, muuten ei.