Kaip patikrinti Armstrongo numerius Java?

Kaip Patikrinti Armstrongo Numerius Java



Armstrongo numeris “ suteikia įžvalgų apie skaičių modelius ir matematines savybes. Tai padeda suprasti skaičių teorijos sąvokas ir tirti savireferencinius ryšius skaičiuose. Be to, tai padeda užtikrinti duomenų ar vartotojo įvesties tikslumą. Tai gali būti naudinga, kai įvesties vientisumas yra labai svarbus.

Šis tinklaraštis padeda rasti pateiktų duomenų Armstrongo numerį.







Kaip patikrinti Armstrongo numerius Java?

Armstrongo numeris “ yra tikrinamas, siekiant nustatyti skaičius, atitinkančius konkrečią matematinę savybę. Jei pateikta reikšmė yra tokia pati, kaip ir savo sveikųjų skaičių, padidintų iki bendro pateiktos vertės sveikųjų skaičių laipsnio, pridėjimas.



Dabar pažvelkime į keletą pavyzdžių, kad suprastume:



1 pavyzdys: Armstrongo numerių identifikavimas





Apsilankykite programoje ir patikrinkite, ar pateiktas numeris yra Armstrongo numeris, ar ne:

importuoti java.util.Scanner;
// Reikalingų paslaugų importavimas.
viešosios klasės ArmstrongChecker {
viešas statinis tuštumas pagrindinis ( Styga [ ] args )
// Deklaruojant pagrindinį ( ) metodas
{
Skaitytuvo demoTest = naujas skaitytuvas ( System.in ) ;
System.out.print ( 'Įveskite numerį, kad patikrintumėte:' ) ;
int numEle = demoTest.nextInt ( ) ;

int origNum = skaičiusEle;
int skaitmenys = 0 ;
kol ( origNum ! = 0 ) {
origNum / = 10 ;
skaitmenys++;
}

tarpt suma = 0 ;
int temp = skaičiusEle;
dėl ( int i = 0 ; i < skaitmenys; i++ ) {
tarpt tu = temp % 10 ;
suma += Math.pow ( tu , skaitmenys ) ;
temp / = 10 ;
}

jeigu ( suma == vardai ) {
System.out.println ( vardai + 'yra Armstrongo numeris.' ) ;
} Kitas {
System.out.println ( vardai + 'netenkina Armstrongo numerio sąlygos.' ) ;
}
}
}


Aukščiau pateikto kodo aprašymas:



    • Pirma, objektas „ Skaitytuvas “ klasė yra sukurta norint gauti sveikąjį skaičių iš galutinio vartotojo naudojant „ nextInt() “ metodą ir išsaugokite gautus duomenis kintamajame pavadinimu „ VARDAI “.
    • Tada ši gauta reikšmė priskiriama int tipo kintamajam pavadinimu ' origNum “ ir inicijuoja kintamąjį pavadinimu „ skaitmenys ' su ' 0 “.
    • Tada ' kol “ naudojama kilpa, kuri pakartotinai dalija origNum iš 10 ir kaskart didina skaitmenų kintamąjį, kol origNum tampa 0.
    • Po to deklaruokite kintamąjį ' suma “ ir nustatykite „ reikšmę VARDAI “ į „ temp “ kintamasis. Ir naudoja ' dėl ' kilpa, kuri kartojasi iki ' skaitmenys “ kintamoji reikšmė.
    • Ir kiekvienoje „for“ ciklo iteracijoje paskutinis „ temp “ išgaunamas naudojant modulio operatorių ir išsaugomas naujame kintamajame “ tu “. Tada skaitmens kubas pridedamas prie ' suma ” kintamąjį naudojant Math.pow() metodą.
    • Pabaigoje „ jei/kitaip “ teiginys naudojamas norint nustatyti, ar apskaičiuota suma yra lygi vartotojo pateiktam pradiniam skaičiui. Jei abi reikšmės yra lygios, pateiktas skaičius yra Armstrongo skaičius ir atvirkščiai.

Po kompiliacijos:


Išvestis rodo, kad pateiktas numeris yra Armstrongo numeris.

2 pavyzdys: suraskite visus Armstrongo numerius nurodytoje riboje

Norėdami rasti visus Armstrongo numerius iki nurodytos vertės arba ribos, apsilankykite toliau pateiktu kodu:

importuoti java.util.Scanner;
importuoti java.lang.Math;

viešoji klasė ArmstsrongNumberPavyzdys
{
statinis loginis isArmsNum ( tarp j ) {
int buff, dainuotiDig = 0 , galas = 0 , skaičiuok = 0 ;
buff =j;
kol ( buff > 0 ) {
buff = buff / 10 ;
singDig++;
}
buff = j;
kol ( buff > 0 )
{
pabaiga = buff % 10 ;
skaičiuok += ( Math.pow ( pabaiga, dainuotiDig ) ) ;
buff = buff / 10 ;
}
jeigu ( j == skaičiuok )
grąžinti tiesa ;
Kitas grąžinti klaidinga ;
}
viešas statinis tuštumas pagrindinis ( Styginių args [ ] )
// Deklaruojant pagrindinį ( ) metodas
{
int proNum;
Skaitytuvas sc = naujas skaitytuvas ( System.in ) ;
System.out.print ( 'Įterpti viršutinę ribą:' ) ;
proNum =sc.nextInt ( ) ;
System.out.println ( „Armstrongo numeris iki nurodytos ribos“ + proNum + ' yra: ' ) ;
dėl ( tarpt k = 0 ; k < =forNum; k++ )
jeigu ( isArmsNum ( k ) )
System.out.print ( k+ ', ' ) ;
}
}


Aukščiau pateikto kodo paaiškinimas:

    • Pirmiausia deklaruokite kelis kintamuosius „buff“, „singDig“, „end“ ir „calc“, kurių tipas yra „ tarpt Būlio tipo metodo, pavadinto „ isArmsNum() “. Jis gauna parametrą, priskirtą kintamajam pavadinimu ' buff “.
    • Toliau „ kol 'Deklaruojama kilpa, kuri kartojasi tol, kol buff reikšmė pasiekia ' 0 “. Po to „ buff “ yra modulis pagal “ 10 “, kad pašalintumėte paskutinį pateiktos vertės skaitmenį ir padidintumėte „ dainuotiDig “ kintamasis.
    • Tada ' kol ' kilpa vėl naudojama per ' buff “ kintamąjį, kad ištrauktumėte paskutinį skaitmenį. Skaičiaus kubas apskaičiuojamas naudojant ' Matematika. pow() “ metodą ir tada pridėta prie „ skaičiuok “ kintamasis.
    • Dabar „ jeigu “ teiginys naudojamas norint patikrinti, ar apskaičiuota vertė „ skaičiuok ” kintamasis yra lygus galutinio vartotojo pateiktai vertei, ar ne. Taip pat atitinkamai parodykite pranešimą.
    • Po to galutinio vartotojo įvestis gaunama naudojant „ Skaitytuvas 'naudingumas ' pagrindinis () “ metodas.
    • Pabaigoje „ dėl Naudojama kilpa, kuri kartojasi iki nurodytos vertės, o kiekviena iteracija vadinama isArmsNum() “ metodas. Šis metodas gauna visas vertes, kol pasiekiama pateikta vertė, ir patikrina kiekvieną Armstrongo skaičiaus vertę.

Po kompiliacijos:


Išvestyje rodomi visi Armstrongo skaičiai iki pateiktos vertės, kuri yra „ 370 ' tokiu atveju.

Išvada

Norėdami rasti Armstrongo numerį, pirmiausia suskaičiuokite pateikto skaičiaus skaitmenis. Tada modulio ir padalijimo operacijomis po vieną ištraukite kiekvieną skaitmenį iš pateikto skaičiaus. Tada kiekvieną sveikąjį vertės skaičių padidinkite iki bendro sveikųjų skaičių laipsnio ir gautą reikšmę pridėkite prie naujo kintamojo. Galiausiai patikrinkite, ar gauta kintamojo reikšmė yra lygi pateiktam skaičiui, jei ji lygi, pateiktas skaičius yra Armstrongo skaičius, kitu atveju ne.