算法递归方法

时间:2018-04-28 15:57:38

标签: algorithm

我需要根据下面的描述编写递归类方法sumNum。并且我不允许在我的方法中使用任何循环,但可以使用%(模数)运算符。

这个模块还是新手,因此我需要知道如何编写这个方法。

函数sumNum (int n)将参数作为正整数。该函数将返回小于5的参数位数之和。

(例如sumDigit(84293841)返回14,这是数字4,2,3,4和1的总和)。在求和中排除大于或等于5的其他数字。

(例如sumDigit(64890272)返回8,这是数字4,0,2和2的总和。

1 个答案:

答案 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;
}