需要帮助C ++循环练习

时间:2011-04-13 21:15:12

标签: c++

来自Cay Horstmann的“C ++ For Everyone” 第4章:循环

编写一个程序,将n的所有奇数位之和相加。 (例如,如果n是32677,则总和将是3 + 7 + 7 = 17)

我不知道如何让电脑“看到”分开的数字

4 个答案:

答案 0 :(得分:8)

n % 10获取一位数的值。你可以从那里弄明白吗?

答案 1 :(得分:3)

这是一个提示。 C ++具有模运算符%。当两个数字被分开时,它将产生余数。因此,如果我想知道数字中大于10的最后一位数,我会模数10并得到结果

int lastDigit = number % 10;

答案 2 :(得分:3)

基数为10的整数i的最后一位数等于i % 10。 (作为参考,%是模数运算符;它基本上返回左边数除以右边的余数。)

所以,现在你有了最后一位数字。完成后,将其添加到您正在保留的运行总计中,将i除以10(有效地将数字向下移动一个位置),或在您的情况下将数字100(两个位置),并从头开始。重复直到i == 0

答案 3 :(得分:0)

此处的人不是为您提供练习的答案,而是为您提供提示,以便您可以自己找到答案,更重要的是了解答案。

首先,以下算术运算可以帮助您:

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