奇怪(对我来说)返回声明 - 无法在谷歌上找到关于它的任何信息[关闭]
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返回其两个参数中较大的一个。
以上是关于奇怪(对我来说)返回声明 - 无法在谷歌上找到关于它的任何信息[关闭]的主要内容,如果未能解决你的问题,请参考以下文章