Additionner les chiffres d'un nombre...

Fermé
kcou - 24 sept. 2015 à 14:27
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 - 24 sept. 2015 à 18:03
Additionner les chiffres d'un nombre...
...jusqu'a ne trouver qu'un seul chiffre

Salut,

Je souhaiterais savoir comment additionner tous les chiffres d'un nombre jusqu'à ne trouver qu'un seul chiffre...

Je me casse la tête mais je ne trouve pas. Je sais seulement additionner une fois tous les chiffres d'un nombre.

Mais j'aimerais répéter cette opération plusieurs fois... jusqu'à ne trouver qu'un seul chiffre

Merci


2 réponses

KikiAmboara Messages postés 21 Date d'inscription jeudi 24 septembre 2015 Statut Membre Dernière intervention 27 janvier 2016
24 sept. 2015 à 14:51
Voici le code qui va resoudre ton probleme:

int toChiffre( int nombre )
{
int temp;
temp = nombre;
while( temp%10 > 9 )
{
temp = (temp/10) + (temp%10);
}
return temp;
}
0
Ca ne fonctionne pas vraiment ... un problème d'accolades semble-t-il
0
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
Modifié par jisisv le 24/09/2015 à 18:10
Regrde ceci:
#include <stdlib.h>
#include <stdio.h>

int mod9(int x)
{
  int c, res = x;
  while (res > 9 )
    {
      res = 0;
      while ( x > 0)
 {
   c = x % 10 ;
   x = x / 10 ;
   res += c;
 }
      x = res;
    }
  return x;
}

unsigned int values[] = { 7, 12, 23, 271, 314, 1234567};

int main(int argc, char* argv[])
{
  int i;
  for( i=0 ; i< sizeof(values)/sizeof(unsigned int) ; i++)
    {
      printf("%d modulo 9 = %d | %d\n", values[i], mod9(values[i]), values[i] % 9);
    }
  return EXIT_SUCCESS;
}


johand@bata:~/src/CCM/C$ ./mod9 
7 modulo 9 = 7 | 7
12 modulo 9 = 3 | 3
23 modulo 9 = 5 | 5
271 modulo 9 = 1 | 1
314 modulo 9 = 8 | 8
1234567 modulo 9 = 1 | 1


Il faut encore vérifier que res !=9 dans mod9, mais ça je te le laisse.
Tu peux aussi écrire une fonction récursive...

Gates gave ^W sold you the windows.
GNU gave us the whole house.(Alexandrin)
0