begin process at 2012 05 28 05:17:51
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Algorithme

 > 

Maths

 > 

Additionner les chiffres d'un nombre


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Additionner les chiffres d'un nombre

jeudi 14 septembre 2006 à 21:47:44 | Additionner les chiffres d'un nombre

Loonis

Bonjour à tous,

Je recherche une méthode pour additionner les chiffres d'un nombre en c++, exemple
15 : 1+5=6

Merci.
jeudi 14 septembre 2006 à 21:54:01 | Re : Additionner les chiffres d'un nombre

chuckboy

Réponse acceptée !
Facile
-Pour 15
-15 / 10= 1
-15 % 10 = 5
-T additionne le tout

Si t a une chiffre plus grand tu divise par 1000 , par 100 , par 10 et tu finit par % 10

a+
jeudi 14 septembre 2006 à 23:19:25 | Re : Additionner les chiffres d'un nombre
jeudi 14 septembre 2006 à 23:32:22 | Re : Additionner les chiffres d'un nombre

BruNews

Administrateur CodeS-SourceS

Allez pour le fun:

__declspec(naked) DWORD __fastcall bnSumFromDWORD(DWORD n)
{ // ECX = val32
  __asm {
    mov     [esp-4], ebx
    test    ecx, ecx
    jnz     short L1
    xor     eax, eax
    ret     0
 L1:
    xor     ebx, ebx
 L2:
    mov     eax, -858993459
    mul     ecx
    mov     eax, edx
    shr     eax, 3
    mov     edx, ecx
    lea     ecx, [eax+eax*8]
    add     ecx, eax
    sub     edx, ecx
    add     ebx, edx
    mov     ecx, eax
    test    eax, eax
    jnz     short L2
    mov     eax, ebx
    mov     ebx, [esp-4]
    ret     0
  }
}

void __stdcall TestSum()
{
  char szsum[12], szdword[12];
  DWORD v;
  v = GetTickCount();
  ultoa(v, szdword, 10);
  ultoa(bnSumFromDWORD(v), szsum, 10);
  MessageBox(0, szsum, szdword, 0);
}


ciao...
BruNews, MVP VC++

jeudi 14 septembre 2006 à 23:45:13 | Re : Additionner les chiffres d'un nombre

Joky

Membre Club
Tu pousses le bouchon un peu trop loin BruNews :)

ULARGE_INTEGERJokyQi=QI("Joky"

jeudi 14 septembre 2006 à 23:51:56 | Re : Additionner les chiffres d'un nombre

BruNews

Administrateur CodeS-SourceS
ah le fun, c'est le fun.
Non mais...

ciao...
BruNews, MVP VC++
jeudi 14 septembre 2006 à 23:53:02 | Re : Additionner les chiffres d'un nombre

Joky

Membre Club
Qu'est-ce-que j'aimerai m'amuser ainsi :)

ULARGE_INTEGERJokyQi=QI("Joky"

vendredi 15 septembre 2006 à 00:23:06 | Re : Additionner les chiffres d'un nombre

BruNews

Administrateur CodeS-SourceS

ok un dernier mumuse, idem en 2 instructions de moins:

__declspec(naked) DWORD __fastcall bnSumFromDWORD(DWORD n)
{ // ECX = val32
  __asm {
    mov     [esp-4], ebx
    test    ecx, ecx
    jnz     short L1
    xor     eax, eax
    ret     0
 L1:
    xor     ebx, ebx
 L2:
    mov     eax, -858993459
    mul     ecx
    shr     edx, 3
    lea     eax, [edx+edx*8]
    add     eax, edx
    add     ebx, ecx
    sub     ebx, eax
    mov     ecx, edx
    test    edx, edx
    jnz     short L2
    mov     eax, ebx
    mov     ebx, [esp-4]
    ret     0
  }
}


ciao...
BruNews, MVP VC++

vendredi 15 septembre 2006 à 02:12:51 | Re : Additionner les chiffres d'un nombre

MuPuF

hmm hmm, mais pourquoi Loonis n'a t'il pas validé la réponse à brunews lol :-)
En cours d'info faudrait que je fasse ça, car le faire en ada c'est trop simple/rapide
Ca me pete les bonbons d'attendre que les autres finissent, et comme ça c'est utile autant passer du temps dessus, mais par contre faut pas compter sur le prof pour corriger lol.


/*
MuPuF®, pour vous servir
vendredi 15 septembre 2006 à 16:27:55 | Re : Additionner les chiffres d'un nombre

magma

 

 

int SommeChiffres(__int64 nombre)
{
  char buf[32];
  int i = 0, somme = 0;
 
  sprintf(buf, "%I64d", nombre);
  while(buf[i]) somme += buf[i++] - '0';
   
  return somme;
}

printf("Somme des chiffres de %I64d = %d\n", 
        nombre, SommeChiffres(nombre));



1 2

Cette discussion est classée dans : nombre, chiffres, additionner


Répondre à ce message

Sujets en rapport avec ce message

POUR LES PROS [ par rigadin ] Le sujet serai :2 joueurs s'affronte pour trouver la bonne combinaison et vont jouer de manière alternative pour trouver un nb de 5 chiffres compris e séparation chiffres d'un nombre [ par surfeurnet ] Quelqu'un connait-il une fonction permettant de séparer les différents chiffres d'un nombre ?par exemple avec le nombre 45623 obtenir 4,5,6,2,3 calculer la somme des chiffres d'un nombre donné - NTL et nombres ZZ [ par scelw ] Je dois faire un exercice.Sachant que c'est pour travailler avec des très grands nombres (de plusieurs millions de chiffres), il faut utiliser la clas Notation exponentielle [ par C2S ] Salut !J'aimerai ecrire des nombre sous notation scientifique (j'y arrive) par contre je veux des exposant sur 3 chiffres or apr defaut c'est sur 2 ch Code qui ne marche pas [ par darkwhite ] Salut a tous . Je suis debutant en C et j'ai commencé un programme qui converti un nombre binaire de huit chiffres en un nombres decimal le code est conversion nombre réel [ par bessouma06 ] bonjour à tousje cherche comment convertirun nombre réel  en un chaine de caractére.j'ai trouvé ce code sur ce site mais qui tien compte seulement  de Programme avec Builder C++ [ par Kyzand ] j'ai un programme a faire mais je suis bloquéje le lis''Un nombre Armstrong est défini comme étant un nombre de n chiffres dont la somme des puissance modulo et nombre de 66 chiffres [ par velvetwizard ] J'ai un problème à résoudre en C. « faire un un pgm C permettant de donner le résultat de A mod X.A étant un nombre de 66 et X= 1 à 100 » 1/ déjà Algorithmie chiffres romains conversion en chiffres arabes [ par jeffreynaz ] Voila je débute en algo et j'aimerais savoir si un peu d'aide serait possible voila mon problème : CHIFFRES ROMAINS symboles d'écriture : M pour 100 Nombre d'entier d'un fichier composé de chiffres [ par ValToutCourt ] Bonjour à tous, j'ai un probléme en programmation, je dois recupérer le nombre d'entier stoké dans un fichier, ca parait bidon, mais j'ai deja tout es


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,076 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales