English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Recueil complet d'exemples de programmation en C
Dans cet exemple, vous allez apprendre à trouver tous les nombres Armstrong entre deux entiers saisis par l'utilisateur.
Pour comprendre cet exemple, vous devriez comprendre les éléments suivantsC langage de programmationSujet :
Un nombre entier positif est appelé nombre Armstrong (degré n), si
abcd... = an + bn + cn + dn +
pour3est un nombre Armstrong à n chiffres, la somme des cubes des chiffres est égale au nombre lui-même. Par exemple,153est un nombre Armstrong, car
153 = 1*1*1 + 5*5*5 + 3*3*3
Avant de tenter ce programme, apprenez àVérifiez si l'entier est un nombre Armstrong.
#include <math.h> #include <stdio.h> int main() { int low, high, number, originalNumber, rem, count = 0; double result = 0.0; printf("Entrez deux nombres (intervalle): "); scanf("%d %d", &low, &high); printf("%d et %d entre les nombres Armstrong sont: ", low, high); //Transférez le nombre de(low + 1) itérer jusqu'à(high - 1) //À chaque itération, vérifiez si le nombre est un nombre Armstrong for (number = low + 1; number < high; ++number) { originalNumber = number; //Calcul du nombre de chiffres while (originalNumber != 0) { originalNumber /= 10; ++count; } originalNumber = number; //Le résultat contient la somme des n-ièmes puissances des chiffres en unité while (originalNumber != 0) { rem = originalNumber % 10; result += pow(rem, count); originalNumber /= 10; } //Vérifiez si le nombre est égal à la somme des n-ièmes puissances des chiffres individuels if ((int)result == number) { printf("%d ", number); } //Réinitialiser les valeurs count = 0; result = 0; } return 0; }
Résultat de sortie
Entrez deux nombres (intervalle): 200 2000 200 et2000 entre les nombres Armstrong sont: 370 371 407 1634
Dans le programme, le cycle externe commence à(low + 1)itérer jusqu'à(high-1)À chaque itération, on vérifie si number est un nombre Armstrong.
À l'intérieur de la boucle externe, d'abord calculez le nombre de digits d'un entier et stockez-le dans count. Et la somme des puissances des chiffres est stockée dans la variable result.
Si le nombre est égal au résultat, ce nombre est un nombre Armstrong.
Attention :Vous devez réinitialiser count et result à 0 à chaque itération de la boucle externe.