2011-04-13 175 views
5

從礁HORSTMANN的「C++對每個人」 第4章:循環需要幫助的C++循環練習

編寫一個程序,增加了正的所有奇數數字的總和。 (例如,如果n爲32677,總和是3 + 7 + 7 = 17)

我不知道如何讓電腦「看」之類的數字分開他們

回答

8

n % 10得到數字的價值。你可以從那裏弄明白嗎?

+0

是的,我想通了。我只是沒想到之後將數字除以10 – Alex 2011-04-23 00:02:15

3

這是一個提示。 C++的模數運算符爲%。當兩個數字分在一起時它會產生餘數。所以,如果我想知道在這數大於10的最後一個數字我會模數10和得到的結果

int lastDigit = number % 10; 
3

基地-10整數i的最後一個數字等於i % 10。 (作爲參考,%是模數運算符;它基本上返回將左邊的數字除以右邊的餘數。)

因此,現在您有最後一位數字了。一旦你這樣做了,把它加到你保留的運行總數中,把i除以10(有效地將數字向下移一位)或者你的情況100(兩個地方),然後從頭開始。重複,直到i == 0

0

這裏的人們並不是爲您提供鍛鍊的答案,而是爲您提供提示,以便您可以自行找到答案,更重要的是瞭解答案。

開始,下面的算術運算將幫助您:

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