2011-04-13 14 views
5

Da Cay Horstmann di "C++ per tutti" Capitolo 4: Loopbisogno di aiuto con C++ Loops Esercizio

Scrivete un programma che aggiunge la somma di tutte le cifre dispari di n. (Per esempio, se n è 32677, la somma sarebbe 3 + 7 + 7 = 17)

non so come fare il computer "vedere" i numeri come separarli

risposta

8

n % 10 ottiene il valore della cifra della persona. Puoi capirlo da lì giusto?

+0

Sì ho capito. Non pensavo di dividere il numero per 10 in seguito – Alex

3

Ecco un suggerimento. C++ ha l'operatore modulo modulo %. Produrrà il resto quando due numeri sono divisi insieme. Quindi, se ho voluto sapere l'ultima cifra in un numero che era maggiore di 10 avrei modulo 10 e ottenere il risultato

int lastDigit = number % 10; 
3

L'ultima cifra di una base-10 intero i è pari a i % 10. (Per riferimento, % è l'operatore modulo, in pratica restituisce il resto dividendo il numero a sinistra a destra.)

Quindi, ora hai l'ultima cifra. Una volta fatto, aggiungilo a un totale parziale che stai mantenendo, dividi i per 10 (spostando effettivamente le cifre verso il basso di un punto), o nel tuo caso 100 (due posizioni), e ricomincia dall'inizio. Ripeti fino al i == 0.

0

Le persone qui non ti forniscono la risposta al tuo esercizio, ma ti forniscono suggerimenti per trovare la risposta da soli e, cosa più importante, capirla.

Per iniziare, le seguenti operazioni aritmetiche vi aiuteranno a:

loop: 
    right_most_digit = n % 10 
    n = n/10 
end_loop 
Problemi correlati