Maison >développement back-end >C++ >Programme C pour vérifier si un nombre est divisible par la somme de ses chiffres

Programme C pour vérifier si un nombre est divisible par la somme de ses chiffres

王林
王林avant
2023-08-30 16:05:081576parcourir

Programme C pour vérifier si un nombre est divisible par la somme de ses chiffres

Étant donné un nombre n, nous devons vérifier si la somme de ses chiffres est divisible par n. Pour le savoir, nous devons additionner tous les nombres en commençant par le chiffre des unités, puis diviser la somme finale par ce nombre.

Par exemple, nous avons un nombre "521", et nous devons trouver la somme de ses chiffres, c'est-à-dire "5 + 2 + 1 = 8", mais 521 ne peut pas être divisible par 8, et le reste ne l'est pas. 0.

Autre exemple, "60", la somme de ses chiffres est "6 + 0 = 6", 6 peut diviser 60, et le reste est 0.

Exemple

Input: 55
Output: No
Explanation: 5+5 = 10; 55 not divisible by 10
Input: 12
Output: Yes
Explanation: 1+2 = 3; 12 is divisible by 3

La méthode utilisée ci-dessous est la suivante :

Pour résoudre ce problème, nous devons obtenir chaque nombre de l'entrée et calculer la somme de chaque nombre, puis vérifier s'il divise le nombre.

  • Obtenez l'entrée
  • Obtenez chaque nombre à partir du chiffre des unités et ajoutez-le à une variable de somme avec une valeur initiale de zéro
  • Divisez l'entrée par la somme des nombres
  • Renvoyez le résultat

Algorithme

In function int isDivisible(long int num)
   Step 1-> Declare and initialize temp = num, sum = 0
   Step 2-> Loop While num
      Declare and initialize k as num % 10
   Set sum as sum + k
      Set num as num / 10
   End Loop
   Step 3-> If temp % sum == 0 then,
      Return 1
   Step 4-> Return 0
      End function
In main()
   Step 1-> Declare and initialize num as 55
   Step 2-> If isDivisible(num) then,
      Print "yes "
   Step 3-> Else
Print "no "

Exemple

Démonstration

#include <stdio.h>
// This function will check
// whether the given number is divisible
// by sum of its digits
int isDivisible(long int num) {
   long int temp = num;
   // Find sum of digits
   int sum = 0;
   while (num) {
      int k = num % 10;
      sum = sum + k;
      num = num / 10;
   }
   // check if sum of digits divides num
   if (temp % sum == 0)
      return 1;
      return 0;
}
int main() {
   long int num = 55;
   if(isDivisible(num))
      printf("yes</p><p>");
   else
      printf("no</p><p>");
      return 0;
}

Sortie

Si vous exécutez le code ci-dessus, la sortie suivante sera générée −

No

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer