来自Cay Horstmann的“C ++ For Everyone” 第4章:循环
编写一个程序,将n的所有奇数位之和相加。 (例如,如果n是32677,则总和将是3 + 7 + 7 = 17)
我不知道如何让电脑“看到”分开的数字
答案 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