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:

  1. Pegue uma variável inteira x
  2. O valor é atribuído à variável x
  3. Os dígitos do valor são divididos
  4. O valor do cubo de cada dígito é encontrado
  5. Some os valores de todos os cubos
  6. A saída é salva na variável de soma
  7. 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.

Torne-se um Desenvolvedor Full Stack

UPGRAD E DIPLOMA PG DO IIIT-BANGALORE EM DESENVOLVIMENTO DE SOFTWARE
INSCREVA-SE AGORA @ UPGRAD