Come controllare i numeri Armstrong in Java?

Come Controllare I Numeri Armstrong In Java



IL ' Numero Armstrong ” fornisce approfondimenti sui modelli numerici e sulle proprietà matematiche. Aiuta a comprendere i concetti della teoria dei numeri e ad esplorare le relazioni autoreferenziali all'interno dei numeri. Inoltre, aiuta a garantire l'accuratezza dei dati o dell'input dell'utente. Può essere utile quando l'integrità dell'input è cruciale.

Questo blog aiuta a trovare il numero Armstrong per i dati forniti.







Come controllare i numeri Armstrong in Java?

IL ' Numero Armstrong ” viene controllato per identificare i numeri che soddisfano una specifica proprietà matematica. Se il valore fornito è uguale alla somma dei propri numeri interi elevati alla potenza del conteggio totale di numeri interi del valore fornito.



Ora, visitiamo alcuni esempi per una maggiore comprensione:



Esempio 1: identificazione dei numeri di Armstrong





Visita il programma per verificare se il numero fornito è il numero Armstrong o meno:

import java.util.Scanner;
// Importazione delle utilità richieste.
classe pubblica ArmstrongChecker {
public static void main ( Corda [ ] arg )
// Dichiarare il principale ( ) metodo
{
Scanner demoTest = nuovo Scanner ( Sistema.in ) ;
Sistema.in.stampa ( 'Inserisci il numero da controllare: ' ) ;
int numEle = demoTest.nextInt ( ) ;

int origNum = numEle;
cifre int = 0 ;
Mentre ( origNum ! = 0 ) {
origNum / = 10 ;
cifre++;
}

int somma = 0 ;
int temp = numEle;
per ( intero io = 0 ; io < cifre; io++ ) {
int Voi = temp % 10 ;
somma += Matematica.pow ( Voi , cifre ) ;
temp / = 10 ;
}

Se ( somma == nomi ) {
System.out.println ( nomi + ' è un numero di Armstrong.' ) ;
} altro {
System.out.println ( nomi + 'non soddisfa la condizione per il numero di Armstrong.' ) ;
}
}
}


Descrizione del codice sopra:



    • Innanzitutto, l'oggetto per il ' Scanner ” la classe viene creata per recuperare un numero intero dall'utente finale utilizzando il “ successivoInt() ” e memorizza i dati recuperati in una variabile denominata “ NOMI ”.
    • Successivamente, questo valore recuperato viene assegnato alla variabile di tipo int denominata ' origNum ” e inizializza una variabile denominata “ cifre ' con ' 0 ”.
    • Poi il ' Mentre Viene utilizzato un ciclo che divide ripetutamente origNum per 10 e incrementa la variabile di cifre ogni volta finché origNum diventa 0.
    • Successivamente, dichiara una variabile ' somma ” e impostare il valore di “ NOMI ' al ' temp ' variabile. E utilizza il ' per ” ciclo che itera fino al “ cifre ” valore variabile.
    • E in ogni iterazione del ciclo 'for', l'ultima cifra di ' temp ” viene estratto utilizzando l'operatore modulo e memorizzato in una nuova variabile “ Voi ”. Quindi, il cubo della cifra viene quindi aggiunto al ' somma ” usando il metodo Math.pow().
    • Alla fine il “ se altro L'istruzione ” viene utilizzata per determinare se la somma calcolata è uguale al numero originale fornito dall'utente. Se entrambi i valori sono uguali, il numero fornito è un numero Armstrong e viceversa.

Dopo la compilazione:


L'output mostra che il numero fornito è un numero Armstrong.

Esempio 2: trovare tutti i numeri Armstrong residenti entro il limite fornito

Per trovare tutti i numeri Armstrong fino al valore o al limite fornito, visitare il codice seguente:

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

public class ArmstsrongNumberExample
{
booleano statico isArmsNum ( int j ) {
buff int, cantareDig = 0 , FINE = 0 , cal = 0 ;
in forma =j;
Mentre ( in forma > 0 ) {
buff = buff / 10 ;
cantareDig++;
}
buff = j;
Mentre ( in forma > 0 )
{
fine = buff % 10 ;
calcola += ( Math.pow ( fine, canta Dig ) ) ;
buff = buff / 10 ;
}
Se ( J ==calc )
ritorno VERO ;
altro ritorno falso ;
}
public static void main ( Argomenti stringa [ ] )
// Dichiarare il principale ( ) metodo
{
int proNum;
Scanner sc = nuovo Scanner ( Sistema.in ) ;
Sistema.in.stampa ( 'Inserisci il limite superiore: ' ) ;
proNum =sc.prossimoInt ( ) ;
System.out.println ( 'Numero Armstrong fino al limite fornito' + proNumero + ' Sono: ' ) ;
per ( int K = 0 ; K < =perNum; K++ )
Se ( isArmsNum ( K ) )
Sistema.in.stampa ( k+ ',' ) ;
}
}


Spiegazione del codice precedente:

    • Innanzitutto, dichiara più variabili 'buff', 'singDig', 'end' e 'calc' con un tipo di ' int ”, all'interno del metodo di tipo booleano denominato “ isArmsNum() ”. Riceve un parametro che viene assegnato alla variabile denominata ' in forma ”.
    • Successivamente, il “ Mentre 'Viene dichiarato un ciclo che itera finché il valore del buff non raggiunge' 0 ”. Dopodiché il “ in forma ” è modulo di “ 10 ” per rimuovere l'ultima cifra dal valore fornito e incrementa il “ cantareDig ' variabile.
    • Poi il ' Mentre ' il ciclo viene utilizzato di nuovo sopra il ' in forma ” variabile per estrarre l'ultima cifra. Il cubo della cifra viene calcolato utilizzando il ' Matematica. pow() ” metodo e poi aggiunto al “ cal ' variabile.
    • Ora il ' Se ” viene utilizzata per verificare se il valore calcolato nel “ cal ” variabile è uguale o meno al valore fornito dall'utente finale. Inoltre, visualizzare il messaggio di conseguenza.
    • Successivamente, l'input dell'utente finale viene recuperato con l'aiuto del ' Scanner ” utilità in “ principale() ' metodo.
    • Alla fine il “ per Viene utilizzato un ciclo che itera fino al valore fornito e ogni iterazione è chiamata ' isArmsNum() ' metodo. Questo metodo riceve tutti i valori fino al raggiungimento del valore fornito e controlla ogni valore per il numero Armstrong.

Dopo la compilazione:


L'output visualizza tutti i numeri Armstrong fino al valore fornito che è ' 370 ' in questo caso.

Conclusione

Per trovare un numero Armstrong, innanzitutto contare le cifre contenute nel numero fornito. Quindi, estrai ciascuna cifra dal numero fornito una per una con l'aiuto delle operazioni di modulo e divisione. Successivamente, eleva ogni numero intero del valore alla potenza del numero totale di numeri interi e aggiungi il valore risultante a una nuova variabile. Infine, controlla se il valore della variabile ottenuto è uguale al numero fornito, se è uguale allora il numero fornito è un numero Armstrong, altrimenti no.