奇怪(对我来说)返回声明 - 无法在谷歌上找到关于它的任何信息[关闭]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了奇怪(对我来说)返回声明 - 无法在谷歌上找到关于它的任何信息[关闭]相关的知识,希望对你有一定的参考价值。

我使用递归创建了一个C ++程序,它返回一个数字中的最大数字。 我按照自己的方式工作,但我找到了另一种选择:

int cifmax(int n) {
    if(n <= 9)
        return n;
    return max(n % 10, cifmax(n / 10));
}

第二次返回如何工作?

答案

您可以将此代码视为等效于以下更详细的版本:

int cifmax(int n) {
    if (n <= 9){
        return n; // trivial base case
    } else {
        int currentdigit = n % 10; // the least significant digit
        int otherdigits = n / 10; // other digits past the least significant
        int maxofotherdigits = cifmax(otherdigits); // make the recursive call

        // compute maximum of the two
        if (currentdigit > maxofotherdigits){
            return currentdigit;
        } else {
            return maxofotherdigits;
        }
    }
}

请注意以下代码段:

if (currentdigit > maxofotherdigits){
    return currentdigit;
} else {
    return maxofotherdigits;
}

相当于:

return std::max(currentdigit, maxofotherdigits);

其中std::max返回其两个参数中较大的一个。

以上是关于奇怪(对我来说)返回声明 - 无法在谷歌上找到关于它的任何信息[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

带块的常量声明

打印机 OKI 陷阱含义 (OID)

在谷歌上搜索 iOS 应用时,同一应用显示超过 1 个 URL?这是啥意思?

使用vscode在谷歌上运行代码

jtable获取列标题组件

无法在谷歌地图markerclusterer中应用自定义图标进行聚类,因为无法提供位置数据