Qual é o número de Armstrong em Java? É Pré-requisitos e Algoritmo
Publicados: 2021-04-08Índice
Qual é o número de Armstrong?
Um dado número x é chamado de número de Armstrong de ordem n se for igual à soma de seus dígitos elevado à potência n, ou seja:
abc= pow(a,n) + pow(b,n) + pow(c,n)
Um inteiro positivo de n dígitos é um número de Armstrong (de ordem 3) se for igual à soma dos cubos de seus dígitos. Por exemplo:
Entrada: 153
Saída: Sim
1*1*1 + 5*5*5 + 3*3*3 = 153
Assim, 153 é um número de Armstrong
Entrada: 121
Saída: Não
1*1*1 + 2*2*2 + 1*1*1 = 10
Assim, 120 não é um número de Armstrong.
Pré-requisitos e Algoritmo
Neste artigo, aprenderemos a verificar se um número de entrada é um número Armstrong ou não. Para isso, usaremos um loop while e um loop for em Java. Para entender este programa, precisamos do conhecimento dos seguintes tópicos em Java:
- Instrução Java if-else
- Java para loop
- Java while e loop do-while
Algoritmo:
- Pegue uma variável inteira x
- O valor é atribuído à variável x
- Os dígitos do valor são divididos
- O valor do cubo de cada dígito é encontrado
- Some os valores de todos os cubos
- A saída é salva na variável de soma
- Se soma=X, imprima o número de Armstrong
Se soma != X, não imprime o número de Armstrong
Programa para verificar o número Armstrong em Java
1. Número Armstrong em Java de ordem 3
Código:
classe pública Armstrong{
public static void main(String[] args) {
int x=0,a,temp;
int n=153;//É o número para verificar Armstrong
temperatura=n;
enquanto(n>0)
{
a=n%10;
n=n/10;
x=x+(a*a*a);
}
if(temp==x)
System.out.println(“Número Armstrong”);
outro
System.out.println(“Número não Armstrong”);
}
}
Saída:
Explicação
Primeiro, o valor de um determinado número N é armazenado em outra variável inteira, x. Isso é feito porque precisamos comparar os valores do número original e o número final no final. Um loop while é usado para percorrer o número N até que seja igual a 0. A cada iteração, o último dígito de N é armazenado em a.
Em seguida, o resultado é calculado cubando a ou usando Math. pow() e adicionando-o a x. Quando o último dígito é removido de N, ele é dividido por 10. Finalmente =, temp e X são comparados. Se forem iguais, é um número de Armstrong. Caso contrário, não é.
2. Número Armstrong em Java de ordem n
Código:
classe pública Armstrong
{
/* Função para calcular um elevado a
potência b */
int potência (int a, long b)
{
se( b == 0)
retorno 1;
se (b%2 == 0)
return potência(a, b/2)*potência(a, b/2);
return a*potência(a, b/2)*potência(a, b/2);
}
/* Função para calcular a ordem do número */
ordem int(int a)
{
int n = 0;
enquanto (a != 0)
{
n++;
a = a/10;
}
retornar n;
}
// Função para verificar se o número fornecido é o número Armstrong ou não
booleano Armstrong (int a)
{
// Chamando a função de pedido
int n = ordem(a);
int temp=a, soma=0;
while (temp!=0)
{
int r = temp%10;
soma = soma + potência(r,n);
temperatura = temperatura/10;
}
// Se satisfaz a condição de Armstrong
retorno (soma == a);
}
// Programa Driver
public static void main(String[] args)
{
Armstrong obj = new Armstrong();
int a = 153;
System.out.println(obj.isArmstrong(a));
a = 1276;
System.out.println(obj.isArmstrong(a));
}
}
Saída :
Explicação
Neste programa, em vez de um loop while, usamos recursão. A primeira função é usada para calcular um número a elevado à potência b. Math.pow(a,b) também pode ser usado para o mesmo. A segunda função verifica a ordem do número, como, 153 é de ordem 3. Finalmente, uma função booleana Armstrong é usada para retornar se o número é Armstrong ou não. Em seguida, um objeto da classe Armstrong é usado para chamar as funções.
Programa Java para imprimir números Armstrong no intervalo dado
Código:
classe pública Armstrong
{
public static void main(String[] arg)
{
int=0,x;
System.out.println(“Números Armstrong entre 0 e 999”);
enquanto(i<1000)
{
x=armstrongOrNot(i);
if(x==i)
System.out.println(i);
i++;
}
}
static int armstrongOrNot(int n)
{
intc,a=0;
while(n!=0)
{
c=n%10;
a=a+(c*c*c);
n/=10;
}
retornar um;
}
}
Saída:
Explicação: Neste programa, cada número entre um determinado intervalo baixo e alto é verificado. Poste cada cheque, a soma e o número de dígitos são restaurados para 0.
Conclusão
Neste artigo, abordamos um número Armstrong em java em detalhes. Vimos como verificar se um número é um número de Armstrong de ordem n e ordem 3. Também vimos como você pode obter todos os números de Armstrong entre um limite inferior e um limite superior.
Se você deseja melhorar suas habilidades em Java, você precisa colocar as mãos nesses projetos Java. Se você estiver interessado em aprender mais sobre Java, desenvolvimento full-stack, confira o Programa PG Executivo do upGrad & IIIT-B em Desenvolvimento de Software Full-stack, projetado para profissionais que trabalham e oferece mais de 500 horas de treinamento rigoroso, mais de 9 projetos , e atribuições, status de ex-alunos do IIIT-B, projetos práticos práticos e assistência de trabalho com as principais empresas.
Se você deseja aprender mais sobre Java e progredir em sua carreira técnica, explore o curso on-line gratuito de Java da maior empresa de ensino superior on-line da Índia, a upGrad. Contacte-nos para mais detalhes.