算法递归方法



我需要根据下面的描述编写一个递归类方法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;
}

最新更新