2010-10-27 24 views

Répondre

11

Quelque chose le long des lignes de ce qui devrait le faire:

int val = 3234; 

int sum = 0; 
while (val != 0) { 
    sum += (val % 10); 
    val = val/10; 
} 

// Now use sum. 

Pour continuer d'ajouter jusqu'à ce que vous obtenez un seul chiffre:

int val = 3234; 

int sum = val; 
while (sum > 9) { 
    val = sum; 
    sum = 0; 
    while (val != 0) { 
     sum += (val % 10); 
     val = val/10; 
    } 
} 

// Now use sum. 

Notez que ces deux éléments sont destructeurs pour la valeur val originale . Si vous voulez le conserver, vous devriez faire une copie ou le faire dans une fonction afin que l'original soit conservé.

+0

manquant virgule somme + = (val% 10); – Saawan

+0

Merci, @Online, corrigé. – paxdiablo

+0

merci! Maintenant, si je veux itérer ce processus jusqu'à ce que je reçois un chiffre unique de 1 à 9 comment le faire. – nishantcm

2

J'espère que ce n'est pas votre devoir!

int sum = 0; 
while (value!=0) { 
    sum += value % 10; 
    value = value/10; 
} 
+2

même réponse que paxdiablo .... donner le point à lui –

+0

en fait j'ai une idée sur la façon de le faire en PHP, mais je suis incapable de le faire dans l'objectif c. – nishantcm

+0

ce n'est pas objectiveC, mais juste C! l'algo est le même que php ... –