Paano Suriin ang Mga Numero ng Armstrong sa Java?

Paano Suriin Ang Mga Numero Ng Armstrong Sa Java



Ang ' Numero ng Armstrong ” ay nagbibigay ng mga insight sa mga pattern ng numero at mga katangian ng matematika. Nakakatulong ito sa pag-unawa sa mga konsepto ng teorya ng numero at paggalugad ng mga ugnayang self-referential sa loob ng mga numero. Bilang karagdagan, nakakatulong ito sa pagtiyak ng katumpakan ng data o input ng user. Maaari itong maging kapaki-pakinabang kung saan mahalaga ang integridad ng input.

Tumutulong ang blog na ito sa paghahanap ng Armstrong number para sa ibinigay na data.







Paano Suriin ang Mga Numero ng Armstrong sa Java?

Ang ' Numero ng Armstrong ” ay nilagyan ng check upang matukoy ang mga numerong nakakatugon sa isang partikular na katangian ng matematika. Kung ang ibinigay na halaga ay kapareho ng pagdaragdag ng sarili nitong mga integer na itinaas sa kapangyarihan ng kabuuang bilang ng mga integer ng ibinigay na halaga.



Ngayon, bisitahin natin ang ilang halimbawa para sa higit pang pag-unawa:



Halimbawa 1: Pagkilala sa Mga Numero ng Armstrong





Bisitahin ang programa upang tingnan kung ang ibinigay na numero ay numero ng Armstrong o hindi:

import java.util.Scanner;
// Pag-import ng Mga Kinakailangang Utility.
pampublikong klase ArmstrongChecker {
pampublikong static void main ( String [ ] args )
// Pagpapahayag ng pangunahing ( ) paraan
{
Scanner demoTest = bagong Scanner ( System.in ) ;
System.out.print ( 'Ipasok ang numero upang suriin: ' ) ;
int numEle = demoTest.nextInt ( ) ;

int origNum = numEle;
int digit = 0 ;
habang ( origNum ! = 0 ) {
origNum / = 10 ;
digit++;
}

int kabuuan = 0 ;
int temp = numEle;
para sa ( int i = 0 ; i < mga numero; i++ ) {
int ikaw = temp % 10 ;
kabuuan += Math.pow ( ikaw , mga digit ) ;
temp / = 10 ;
}

kung ( kabuuan == mga pangalan ) {
System.out.println ( mga pangalan + ' ay isang numero ng Armstrong.' ) ;
} iba pa {
System.out.println ( mga pangalan + ' ay hindi nakakatugon sa Kundisyon para sa Armstrong Number.' ) ;
}
}
}


Paglalarawan ng code sa itaas:



    • Una, ang bagay para sa ' Scanner Ang klase ng ” ay nilikha upang kunin ang isang integer mula sa end user gamit ang “ nextInt() ” paraan at iimbak ang nakuhang data sa isang variable na pinangalanang “ mga NAME ”.
    • Susunod, ang nakuhang halaga na ito ay itinalaga sa int type na variable na pinangalanang “ origNum ” at nagpapasimula ng variable na pinangalanang “ mga digit 'may' 0 ”.
    • Pagkatapos, ang ' habang Ginagamit ang ” loop na paulit-ulit na hinahati ang origNum ng 10 at dinadagdagan ang variable ng mga digit sa bawat oras hanggang sa maging 0 ang origNum.
    • Pagkatapos nito, ipahayag ang isang variable na ' kabuuan ” at itakda ang halaga ng “ mga NAME ' sa ' temp ” variable. At ginagamit ang ' para sa ' loop na umuulit hanggang sa ' mga digit ” variable na halaga.
    • At sa bawat 'para' na pag-ulit ng loop, ang huling digit ng ' temp ' ay kinuha gamit ang modulus operator at naka-imbak sa isang bagong variable ' ikaw ”. Pagkatapos, ang kubo ng digit ay idinagdag sa ' kabuuan ” variable gamit ang Math.pow() method.
    • Sa huli, ang ' kung hindi Ang ” statement ay ginagamit upang matukoy kung ang nakalkulang kabuuan ay katumbas ng orihinal na ibinigay na numero ng user. Kung magkapareho ang parehong value, ang ibinigay na numero ay isang Armstrong number at vice versa.

Pagkatapos ng compilation:


Ipinapakita ng output na ang ibinigay na numero ay isang numero ng Armstrong.

Halimbawa 2: Hanapin ang Lahat ng Natitirang Armstrong Number sa loob ng Ibinigay na Limitasyon

Upang mahanap ang lahat ng numero ng Armstrong sa ibinigay na halaga o limitasyon, bisitahin ang code sa ibaba:

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

pampublikong klase ArmstsrongNumberExample
{
ang static na boolean ayArmsNum ( int j ) {
int buff, singDig = 0 , wakas = 0 , calc = 0 ;
buff =j;
habang ( buff > 0 ) {
buff = buff / 10 ;
singDig++;
}
buff = j;
habang ( buff > 0 )
{
dulo = buff % 10 ;
calc += ( Math.pow ( tapusin, singDig ) ) ;
buff = buff / 10 ;
}
kung ( j ==calc )
bumalik totoo ;
iba pa bumalik mali ;
}
pampublikong static void main ( String args [ ] )
// Pagpapahayag ng pangunahing ( ) paraan
{
int proNum;
Scanner sc = bagong Scanner ( System.in ) ;
System.out.print ( 'Ipasok ang Upper Limit: ' ) ;
proNum =sc.nextInt ( ) ;
System.out.println ( 'Bilang Armstrong hanggang sa ibinigay na Limitasyon ' + proNum + 'ay:' ) ;
para sa ( int k = 0 ; k < =forNum; k++ )
kung ( isArmsNum ( k ) )
System.out.print ( k+ ',' ) ;
}
}


Paliwanag ng code sa itaas:

    • Una, ideklara ang maraming variable na 'buff', 'singDig', 'end', at 'calc' na mayroong uri ng ' int ”, sa loob ng paraan ng uri ng boolean na pinangalanang “ isArmsNum() ”. Nakatanggap ito ng isang parameter na itinalaga sa variable na pinangalanang ' buff ”.
    • Susunod, ang ' habang Ang 'loop ay ipinahayag na umuulit hanggang ang buff value ay umabot sa ' 0 ”. Pagkatapos nito, ang ' buff 'ay modulus sa pamamagitan ng' 10 ' upang alisin ang huling digit mula sa ibinigay na halaga at dagdagan ang ' singDig ” variable.
    • Pagkatapos, ang ' habang Ang 'loop ay muling ginagamit sa ibabaw ng ' buff ” variable upang kunin ang huling digit. Ang kubo ng digit ay kinakalkula sa pamamagitan ng paggamit ng ' Math. pow() 'paraan at pagkatapos ay idinagdag sa ' calc ” variable.
    • Ngayon ang ' kung 'Ang pahayag ay ginagamit upang suriin kung ang kinakalkula na halaga sa ' calc Ang variable ay katumbas ng ibinigay na halaga ng end-user o hindi. Gayundin, ipakita ang mensahe nang naaayon.
    • Pagkatapos nito, ang input mula sa end user ay kinukuha sa tulong ng ' Scanner 'utilidad sa' pangunahing() ” paraan.
    • Sa huli, ang ' para sa 'Ang loop ay ginagamit na umuulit hanggang sa ibinigay na halaga, at ang bawat pag-ulit ay tinatawag na ' isArmsNum() ” paraan. Ang pamamaraang ito ay tumatanggap ng lahat ng mga halaga hanggang sa ang ibinigay na halaga ay maabot at suriin ang bawat halaga para sa numero ng Armstrong.

Pagkatapos ng compilation:


Ipinapakita ng output ang lahat ng mga numero ng Armstrong hanggang sa ibinigay na halaga na ' 370 ” sa kasong ito.

Konklusyon

Para makahanap ng Armstrong number, bilangin muna ang mga digit na nilalaman ng ibinigay na numero. Pagkatapos, i-extract ang bawat digit mula sa ibinigay na numero nang paisa-isa sa tulong ng modulus at division operations. Susunod, itaas ang bawat integer ng value sa kapangyarihan ng kabuuang bilang ng mga integer at idagdag ang resultang value sa isang bagong variable. Panghuli, suriin kung ang nakuhang variable na halaga ay katumbas ng ibinigay na numero, kung ito ay katumbas, ang ibinigay na numero ay isang Armstrong na numero, kung hindi man ay hindi.