English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial Básico de C

Controle de Fluxo em C

Funções C

Matrizes C

Ponteiros C

Strings C

Estrutura em C

Linguagem de Programação C

Outros

Manual de referência do C

C programa para encontrar números Armstrong entre intervalos

大全 de Programação C

Neste exemplo, você aprenderá a encontrar todos os números Armstrong entre os dois inteiros inseridos pelo usuário.

Para entender este exemplo, você deve entender o seguinteProgramação em CTema:

Um inteiro positivo é chamado de número Armstrong (n-ésima ordem), se

abcd... = an + bn + cn + dn +

para3dígitos são números Armstrong, a soma das potências n dos dígitos é igual ao número em si. Por exemplo,153é um número Armstrong, porque

153 = 1*1*1 + 5*5*5 + 3*3*3

Antes de tentar este programa, aprenda comoVerificar se o inteiro é um número Armstrong.

Números Armstrong entre dois inteiros

#include <math.h>
#include <stdio.h>
int main() {
   int low, high, number, originalNumber, rem, count = 0;
   double result = 0.0;
   printf("Insira dois números (intervalo): ");
   scanf("%d %d", &low, &high);
   printf("%d e %d entre os números Armstrong são: ", low, high);
    //Converter o número de (baixo + 1) iterar até (alto - 1)
    //Em cada iteração, verifica-se se o número é um número Armstrong
   for (number = low + 1; number < high; ++number) {
      originalNumber = number;
      //Cálculo de dígitos
      enquanto (originalNumber != 0) {
         originalNumber /= 10;
         ++count;
      }
      originalNumber = number;
      //O resultado contém a soma das potências n dos dígitos
      enquanto (originalNumber != 0) {
         rem = originalNumber % 10;
         result += pow(rem, count);
         originalNumber /= 10;
      }
      //Verificar se o número é igual à soma das potências n do número individual
      if ((int)result == number) {
         printf("%d ", number);
      }
      //Resetar valores
      count = 0;
      result = 0;
   }
   return 0;
}

Resultado de saída

Insira dois números (intervalo): 200
2000
200 e2000 entre os números Armstrong são: 370 371 407 1634

No programa, o loop externo começa de(baixo + 1)iterar até(alto-1)Em cada iteração, verifica-se se o number é um número Armstrong.

Dentro do loop externo, primeiro calcule o número de dígitos de um inteiro e armazene-o em count. E a soma das potências de cada dígitos é armazenada na variável result.

Se o número for igual ao result, o número é um número de Armstrong.

Atenção:Você precisa resetar o count e o result para 0 em cada iteração do loop externo.

大全 de Programação C