2011-04-13 45 views
5

Từ "C++ For Everyone" Chương Cày Horstmann 4: Bản lềCần giúp đỡ với C++ Loops Tập thể dục

Viết một chương trình cho biết thêm rằng tổng của tất cả chữ số lẻ của n. (Ví dụ, nếu n là 32.677, tổng sẽ là 3 + 7 + 7 = 17)

Tôi không biết làm thế nào để làm cho máy tính "nhìn thấy" những con số như tách chúng

Trả lời

8

n % 10 nhận được giá trị của chữ số của một người. Bạn có thể hình dung ra từ đó phải không?

+0

Có, tôi figured it out. Tôi chỉ không nghĩ đến việc chia số cho 10 sau đó – Alex

3

Đây là gợi ý. C++ có toán tử modulus %. Nó sẽ tạo ra phần còn lại khi hai số được chia với nhau. Vì vậy, nếu tôi muốn biết các chữ số cuối cùng trong một số đó là lớn hơn 10 tôi sẽ mô đun 10 và nhận được kết quả

int lastDigit = number % 10; 
3

Các chữ số cuối cùng của một cơ số 10 số nguyên i bằng i % 10. (Để tham khảo, % là toán tử mô đun; về cơ bản nó trả về phần còn lại từ việc chia số bên trái sang bên phải.)

Vì vậy, bây giờ bạn có chữ số cuối cùng. Khi bạn thực hiện, hãy thêm nó vào tổng số đang chạy mà bạn đang giữ, chia i cho 10 (chuyển số có hiệu quả xuống một chỗ) hoặc trong trường hợp của bạn là 100 (hai địa điểm) và bắt đầu lại từ đầu. Lặp lại cho đến i == 0.

0

Mọi người ở đây không cung cấp câu trả lời cho bài tập của bạn, nhưng để cung cấp cho bạn các gợi ý để bạn có thể tự tìm ra câu trả lời và quan trọng hơn là hãy hiểu câu trả lời.

Để bắt đầu, các phép tính số học sau đây sẽ giúp bạn:

loop: 
    right_most_digit = n % 10 
    n = n/10 
end_loop 
Các vấn đề liên quan