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

Tutoriel de base du langage C

Contrôle de flux du langage C

Fonctions du langage C

Tableaux en langage C

Pointeurs en langage C

Chaînes de caractères en langage C

Structure de langage C

Langage C fichier

C autres

C manuel de référence du langage

C programme pour trouver les nombres Armstrong entre deux intervalles

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.

Les nombres Armstrong entre deux entiers

#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.

Recueil complet d'exemples de programmation en C