我需要根据下面的描述编写递归类方法sumNum
。并且我不允许在我的方法中使用任何循环,但可以使用%(模数)运算符。
这个模块还是新手,因此我需要知道如何编写这个方法。
函数sumNum (int n)
将参数作为正整数。该函数将返回小于5的参数位数之和。
(例如sumDigit(84293841)
返回14,这是数字4,2,3,4和1的总和)。在求和中排除大于或等于5的其他数字。
(例如sumDigit(64890272)
返回8,这是数字4,0,2和2的总和。
答案 0 :(得分:1)
以下是如何在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;
}