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