Verificando Números de Armstrong em C++

C++Beginner
Pratique Agora

Introdução

Neste laboratório, aprenderemos como verificar se um número é um número de Armstrong (Armstrong number) em C++. Um número de Armstrong é um número que é igual à soma de seus próprios dígitos, cada um elevado à potência do número de dígitos. Este é um programa simples que pode ajudá-lo a praticar suas habilidades de codificação em C++.

Incluir as bibliotecas necessárias

Criaremos um novo arquivo chamado main.cpp no diretório ~/project usando o seguinte comando:

touch ~/project/main.cpp

Nesta etapa, incluiremos as bibliotecas necessárias.

#include <iostream>
#include <cmath>
using namespace std;

A biblioteca iostream é usada para trabalhar com fluxos de entrada/saída (input/output streams), enquanto a biblioteca cmath adiciona funcionalidade para operações matemáticas.

Definir a função main()

Nesta etapa, definiremos a função main().

int main() {
    // code here
    return 0;
}

A função main é o ponto de entrada do programa. Todo o código a ser executado deve ser escrito dentro desta função.

Declarar e inicializar variáveis

Nesta etapa, declararemos e inicializaremos as variáveis necessárias para o programa.

int num, originalNumber, remainder, result = 0, n = 0;
  • num é o número de entrada (input number)
  • originalNumber é o número de entrada não modificado
  • remainder armazena o último dígito do número de entrada
  • result armazena o resultado do cálculo de Armstrong
  • n é usado para determinar o número de dígitos no número de entrada

Obter a entrada do usuário

Nesta etapa, obteremos o valor de entrada do usuário.

cout << "Enter a positive integer: ";
cin >> num;

Este trecho de código recebe a entrada do usuário e a armazena na variável num.

Determinar o número de dígitos no número de entrada

Nesta etapa, determinaremos o número de dígitos no número de entrada.

originalNumber = num;

// count number of digits
while (originalNumber != 0) {
    originalNumber /= 10;
    ++n;
}

Este bloco de código conta o número de dígitos no número de entrada. O número é armazenado na variável n.

Calcular o resultado

Nesta etapa, calcularemos o resultado da cálculo de Armstrong.

originalNumber = num;

while (originalNumber != 0) {
    remainder = originalNumber % 10;
    result += pow(remainder, n);
    originalNumber /= 10;
}

Este bloco de código itera sobre cada dígito no número de entrada e realiza o cálculo para um número de Armstrong. O resultado é armazenado na variável result.

Verificar o resultado

Nesta etapa, verificaremos se o número de entrada é ou não um número de Armstrong.

if (result == num)
    cout << num << " is an Armstrong number";
else
    cout << num << " is not an Armstrong number";

Este bloco de código exibe o resultado do programa. Se o resultado for igual ao número de entrada, o número de entrada é um número de Armstrong. Caso contrário, não é.

Para executar o código no terminal:

g++ main.cpp -o main && ./main

Resumo

Neste laboratório, aprendemos como verificar se um número é ou não um número de Armstrong. Usamos a biblioteca cmath para realizar os cálculos necessários para esta tarefa. Também aprendemos como iterar sobre os dígitos de um número e contá-los. Com este programa básico, você pode desenvolver ainda mais suas habilidades de codificação em C++.