我需要根据下面的描述编写一个递归类方法sumNum
。而且我不允许在我的方法中使用任何循环,但可以使用 %(模(运算符。
这个模块还是新手,因此我需要知道如何写出这个方法。
函数sumNum (int n)
将正整数作为参数。该函数将返回小于 5 的参数数字总和。
(例如 sumDigit(84293841)
返回 14,即数字 4、2、3、4 和 1 的总和(。求和中不包括大于或等于 5 的其他数字。
(例如 sumDigit(64890272)
返回 8,即数字 4、0、2 和 2 的总和(。
下面是如何在C++中实现此目的的示例:
unsigned int sumLessThan5Digits(unsigned int n) {
return n == 0 ? 0 :
(sumLessThan5Digits(n/10) + ((n % 10) < 5 ? (n % 10) : 0));
}
int main() {
std::cout << sumLessThan5Digits(84293841) << std::endl;
std::cout << sumLessThan5Digits(64890272) << std::endl;
}