Hogyan lehet ellenőrizni az Armstrong-számokat Java-ban?

Hogyan Lehet Ellenorizni Az Armstrong Szamokat Java Ban



A ' Armstrong szám ” betekintést nyújt a számmintákba és a matematikai tulajdonságokba. Segít a számelméleti fogalmak megértésében és a számokon belüli önreferenciális kapcsolatok feltárásában. Ezenkívül segít az adatok vagy a felhasználói bevitel pontosságának biztosításában. Hasznos lehet ott, ahol a bemenet integritása kulcsfontosságú.

Ez a blog segít megtalálni az Armstrong-számot a megadott adatokhoz.







Hogyan lehet ellenőrizni az Armstrong-számokat Java-ban?

A ' Armstrong szám ” be van jelölve, hogy azonosítsa azokat a számokat, amelyek megfelelnek egy adott matematikai tulajdonságnak. Ha a megadott érték megegyezik a megadott érték teljes számának hatványára emelt saját egész számainak összeadásával.



Most nézzünk meg néhány példát a jobb megértés érdekében:



1. példa: Az Armstrong-számok azonosítása





Látogassa meg a programot, és ellenőrizze, hogy a megadott szám Armstrong-szám-e vagy sem:

import java.util.Scanner;
// A szükséges segédprogramok importálása.
nyilvános osztályú ArmstrongChecker {
public static void main ( Húr [ ] args )
// A fő kinyilvánítása ( ) módszer
{
Szkenner demoTest = új szkenner ( System.in ) ;
System.out.print ( 'Írja be a számot az ellenőrzéshez:' ) ;
int numEle = demoTest.nextInt ( ) ;

int origNum = számEle;
int számjegyek = 0 ;
míg ( origNum ! = 0 ) {
origNum / = 10 ;
számjegyek++;
}

int összeg = 0 ;
int temp = számEle;
számára ( int i = 0 ; én < számjegyek; i++ ) {
int te = hőm % 10 ;
összeg += Math.pow ( te , számjegyek ) ;
hőm / = 10 ;
}

ha ( összeg == nevek ) {
System.out.println ( nevek + 'egy Armstrong-szám.' ) ;
} más {
System.out.println ( nevek + 'nem felel meg az Armstrong-szám feltételének.' ) ;
}
}
}


A fenti kód leírása:



    • Először is a „ Scanner ' osztály jön létre, hogy egy egész számot lekérjen a végfelhasználótól a ' nextInt() ' metódussal, és tárolja a letöltött adatokat egy ' nevű változóban NEVEK ”.
    • Ezután ezt a leolvasott értéket hozzárendeljük a következő int típusú változóhoz origNum ' és inicializál egy '' nevű változót számjegyek ' val vel ' 0 ”.
    • Aztán a ' míg ” ciklus használatos, amely az origNum értéket ismételten elosztja 10-zel, és minden alkalommal növeli a változó számjegyeit, amíg az origNum 0 nem lesz.
    • Ezután deklaráljon egy változót ' összeg ” és állítsa be a „ NEVEK ' hoz ' hőm ” változó. És használja a „ számára ' ciklus, amely a ' számjegyek ” változó érték.
    • És minden „for” ciklus iterációjában a „” utolsó számjegye hőm A modul a modulus operátor segítségével kinyerésre kerül és egy új változóban tárolódik te ”. Ezután a számjegy kockája hozzáadódik a „ összeg ” változó a Math.pow() metódus használatával.
    • Végül a „ ha más ” utasítás segítségével megállapítható, hogy a számított összeg megegyezik-e a felhasználó által eredetileg megadott számmal. Ha mindkét érték egyenlő, akkor a megadott szám Armstrong-szám, és fordítva.

Az összeállítás után:


A kimenet azt mutatja, hogy a megadott szám Armstrong-szám.

2. példa: Keresse meg az összes tartózkodó Armstrong-számot a megadott határon belül

A megadott értékhez vagy határértékhez tartozó Armstrong-számok megtalálásához keresse fel az alábbi kódot:

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

public class ArmstsrongNumberPélda
{
statikus logikai érték isArmsNum ( int j ) {
int buff, singDig = 0 , vége = 0 , kalc = 0 ;
barnássárga =j;
míg ( barnássárga > 0 ) {
buff = buff / 10 ;
singDig++;
}
buff = j;
míg ( barnássárga > 0 )
{
vége = buff % 10 ;
kalkuláció += ( Math.pow ( vége, singDig ) ) ;
buff = buff / 10 ;
}
ha ( j ==kalc )
Visszatérés igaz ;
más Visszatérés hamis ;
}
public static void main ( String args [ ] )
// A fő kinyilvánítása ( ) módszer
{
int proNum;
Scanner sc = új szkenner ( System.in ) ;
System.out.print ( 'Insert the Upper Limit:' ) ;
proNum =sc.nextInt ( ) ;
System.out.println ( 'Armstrong-szám a megadott korlátig' + proNum + ' vannak: ' ) ;
számára ( int k = 0 ; k < =forNum; k++ )
ha ( isArmsNum ( k ) )
System.out.print ( k+ ', ' ) ;
}
}


A fenti kód magyarázata:

    • Először deklaráljon több „buff”, „singDig”, „end” és „calc” változót, amelyek típusa „ int ”, a '' nevű logikai típusú metóduson belül isArmsNum() ”. Kap egy paramétert, amely a „nevű változóhoz van hozzárendelve barnássárga ”.
    • Ezután a „ míg ' ciklus deklarálva van, amely addig iterál, amíg a buff érték el nem éri a ' 0 ”. Ezt követően a „ barnássárga ' modulusa ' 10 ' az utolsó számjegy eltávolításához a megadott értékből, és növeli a ' singDig ” változó.
    • Aztán a ' míg ' hurok ismét használatos a ' barnássárga ” változót az utolsó számjegy kinyeréséhez. A számjegy kockáját a „ Math. hadifogoly() ” módszert, majd hozzáadjuk a „ kalc ” változó.
    • Most a ' ha ' utasítást használjuk annak ellenőrzésére, hogy a számított érték a ' kalc ” változó megegyezik-e a végfelhasználó által megadott értékkel, vagy sem. Ezenkívül jelenítse meg az üzenetet ennek megfelelően.
    • Ezt követően a végfelhasználótól származó bemeneti adatok a „ Scanner ' segédprogram a ' fő() ” módszerrel.
    • Végül a „ számára ' ciklust használják, amely a megadott értékig iterál, és minden iterációt ' isArmsNum() ” módszerrel. Ez a módszer megkapja az összes értéket, amíg el nem éri a megadott értéket, és minden értéket ellenőrzi az Armstrong-szám tekintetében.

Az összeállítás után:


A kimenet az összes Armstrong-számot megjeleníti a megadott értékig, amely ' 370 ' ebben az esetben.

Következtetés

Egy Armstrong-szám megtalálásához először számolja meg a megadott szám számjegyeit. Ezután a modulus- és osztásműveletek segítségével egyenként vonja ki a megadott számjegyeket. Ezután emelje fel az érték minden egész számát az egész számok teljes számának hatványára, és adja hozzá a kapott értéket egy új változóhoz. Végül ellenőrizze, hogy a kapott változó értéke megegyezik-e a megadott számmal, ha egyenlő, akkor a megadott szám Armstrong-szám, egyébként nem.