Com comprovar els números d'Armstrong a Java?

Com Comprovar Els Numeros D Armstrong A Java



El ' Número d'Armstrong ” proporciona informació sobre patrons numèrics i propietats matemàtiques. Ajuda a entendre els conceptes de la teoria dels nombres i a explorar les relacions autoreferencials dins dels nombres. A més, ajuda a garantir la precisió de les dades o l'entrada de l'usuari. Pot ser útil quan la integritat de l'entrada és crucial.

Aquest bloc ajuda a trobar el número d'Armstrong de les dades proporcionades.







Com comprovar els números Armstrong a Java?

El ' Número d'Armstrong ” es verifica per identificar nombres que compleixen una propietat matemàtica específica. Si el valor proporcionat és el mateix que l'addició dels seus propis nombres enters elevats a la potència del recompte total de nombres enters del valor proporcionat.



Ara, visitem alguns exemples per entendre millor:



Exemple 1: Identificació dels nombres d'Armstrong





Visiteu el programa per comprovar si el número proporcionat és el número Armstrong o no:

importar java.util.Scanner;
// Importació de les utilitats necessàries.
classe pública ArmstrongChecker {
principal buit estàtic públic ( Corda [ ] args )
// Declarant el principal ( ) mètode
{
Escàner demoTest = escàner nou ( System.in ) ;
sistema.out.impressió ( 'Introduïu el número per comprovar:' ) ;
int numEle = demoTest.nextInt ( ) ;

int origNum = numEle;
int dígits = 0 ;
mentre ( origen ! = 0 ) {
origen / = 10 ;
dígits++;
}

int suma = 0 ;
int temp = numEle;
per ( int i = 0 ; i < dígits; i++ ) {
int vostè = temp % 10 ;
suma += Matemàtiques.pow ( vostè , dígits ) ;
temp / = 10 ;
}

si ( suma == noms ) {
System.out.println ( noms + 'és un nombre d'Armstrong'. ) ;
} altra cosa {
System.out.println ( noms + 'no satisfà la condició per al número d'Armstrong'. ) ;
}
}
}


Descripció del codi anterior:



    • En primer lloc, l'objecte per a ' Escàner ' es crea la classe per recuperar un nombre enter de l'usuari final mitjançant el ' nextInt() ” i emmagatzemar les dades recuperades en una variable anomenada “ NOMS ”.
    • A continuació, aquest valor recuperat s'assigna a la variable de tipus int anomenada ' origen ” i inicialitza una variable anomenada “ dígits ' amb ' 0 ”.
    • Aleshores el ' mentre S'utilitza un bucle que divideix repetidament origNum per 10 i augmenta la variable de dígits cada vegada fins que origNum es converteix en 0.
    • Després d'això, declara una variable ' suma ” i estableix el valor de “ NOMS ' fins al ' temp ” variable. I utilitza el ' per ' bucle que itera fins al ' dígits ” valor variable.
    • I en cada iteració del bucle 'for', l'últim dígit de ' temp ' s'extreu mitjançant l'operador mòdul i s'emmagatzema en una nova variable ' vostè ”. Aleshores, el cub del dígit s'afegeix al ' suma ” variable utilitzant el mètode Math.pow().
    • Al final, el ' si una altra cosa ” s'utilitza per determinar si la suma calculada és igual al número original proporcionat per l'usuari. Si tots dos valors són iguals, el nombre proporcionat és un nombre d'Armstrong i viceversa.

Després de la compilació:


La sortida mostra que el número proporcionat és un nombre d'Armstrong.

Exemple 2: Trobeu tots els números d'Armstrong residents dins del límit proporcionat

Per trobar tots els números Armstrong al valor o límit proporcionat, visiteu el codi següent:

importar java.util.Scanner;
importar java.lang.Math;

classe pública ArmstrongNumberExample
{
booleà estàtic isArmsNum ( int j ) {
int buff, cantaDig = 0 , final = 0 , calc = 0 ;
buff =j;
mentre ( buff > 0 ) {
buff = buff / 10 ;
singDig++;
}
buff = j;
mentre ( buff > 0 )
{
final = buff % 10 ;
calc += ( Matemàtiques.pow ( acabar, cantarDig ) ) ;
buff = buff / 10 ;
}
si ( j ==calc )
tornar veritat ;
altra cosa tornar fals ;
}
principal buit estàtic públic ( Arguments de cadena [ ] )
// Declarant el principal ( ) mètode
{
int proNum;
Escàner sc = escàner nou ( System.in ) ;
sistema.out.impressió ( 'Insereix el límit superior:' ) ;
proNúm =sc.nextInt ( ) ;
System.out.println ( 'Número d'Armstrong fins al límit proporcionat' + proNum + ' són: ' ) ;
per ( int k = 0 ; k < =forNum; k++ )
si ( isArmsNum ( k ) )
sistema.out.impressió ( k+ ', ' ) ;
}
}


Explicació del codi anterior:

    • Primer, declareu múltiples variables 'buff', 'singDig', 'end' i 'calc' amb un tipus de ' int ”, dins del mètode de tipus booleà anomenat “ isArmsNum() ”. Reb un paràmetre que s'assigna a la variable anomenada ' buff ”.
    • A continuació, el ' mentre 'Es declara el bucle que itera fins que el valor del buff arriba a ' 0 ”. Després d'això, el ' buff ' és mòdul per ' 10 ' per eliminar l'últim dígit del valor proporcionat i augmenta el ' cantaDig ” variable.
    • Aleshores el ' mentre 'el bucle s'utilitza de nou sobre el ' buff ” variable per extreure l'últim dígit. El cub del dígit es calcula utilitzant el ' Matemàtiques. pow() ' i després s'afegeix al ' calc ” variable.
    • Ara, el ' si ' s'utilitza per comprovar si el valor calculat a la ' calc ” variable és igual o no al valor proporcionat per l'usuari final. A més, mostreu el missatge en conseqüència.
    • Després d'això, l'entrada de l'usuari final es recupera amb l'ajuda del ' Escàner ' utilitat a la ' principal () ” mètode.
    • Al final, el ' per S'utilitza un bucle que itera fins al valor proporcionat, i cada iteració s'anomena ' isArmsNum() ” mètode. Aquest mètode rep tots els valors fins que s'arriba al valor proporcionat i comprova cada valor per al nombre d'Armstrong.

Després de la compilació:


La sortida mostra tots els números Armstrong fins al valor proporcionat que és ' 370 ' en aquest cas.

Conclusió

Per trobar un nombre d'Armstrong, primer, compta els dígits que conté el número proporcionat. A continuació, extreu cada dígit del número proporcionat un per un amb l'ajuda d'operacions de mòdul i divisió. A continuació, eleveu cada nombre enter del valor a la potència del nombre total de nombres enters i afegiu el valor resultant a una nova variable. Finalment, comproveu si el valor de la variable obtingut és igual al nombre proporcionat, si és igual, el nombre proporcionat és un nombre d'Armstrong, en cas contrari no.