2011-04-13 15 views
5

Od Cay Horstmann w „C++ dla każdego” Rozdział 4: PętlePotrzebujesz pomocy z C++ pętle Ćwiczenia

Napisz program, który dodaje się sumę wszystkich cyfr nieparzystych n. (Na przykład, jeśli n jest 32677, suma byłaby 3 + 7 + 7 = 17)

nie wiem jak zrobić komputer „widzi” numery jak oddzielić je

Odpowiedz

8

n % 10 dostaje wartość cyfry. Możesz to zrozumieć, prawda?

+0

Tak zdobione. Po prostu nie pomyślałem o podzieleniu liczby przez 10 później – Alex

3

Oto podpowiedź. C++ ma operatora modulusa %. Wytworzy resztę, gdy dwie liczby zostaną podzielone razem. Więc gdybym chciał wiedzieć ostatnią cyfrę w numerze, który był większy niż 10 bym moduł 10 i uzyskać wynik

int lastDigit = number % 10; 
3

ostatnia cyfra w base-10 całkowitą i jest równa i % 10. (Dla porównania, % jest operatorem modułu, w zasadzie zwraca resztę z dzielenia lewej liczby przez prawo.)

Tak, teraz masz ostatnią cyfrę. Gdy to zrobisz, dodaj go do całkowitej liczby, którą przechowujesz, podziel przez i przez 10 (skutecznie przesuwając cyfry w dół o jedno miejsce) lub w przypadku 100 (dwa miejsca) i zacznij od początku. Powtarzaj aż do i == 0.

0

Ludzie tutaj raczej nie dostarczy Ci odpowiedzi na ćwiczenia, ale dostarczy Ci wskazówek, aby można było znaleźć odpowiedź na własną rękę, a co ważniejsze zrozumieć.

Aby uruchomić następujące operacje arytmetyczne pomoże Ci:

loop: 
    right_most_digit = n % 10 
    n = n/10 
end_loop 
Powiązane problemy