gpt4 book ai didi

C++ 理解递归函数

转载 作者:搜寻专家 更新时间:2023-10-31 00:13:18 25 4
gpt4 key购买 nike

我需要一些帮助来理解这个递归函数。它在 n = 5 时返回 101 但我不明白为什么。这是函数:

string RecursiveMystery(int n) {
string s = "1";
if (n % 2 == 0) {
s = "0";
}
if (n < 2) {
return s;
}
return RecursiveMystery(n / 2) + s;

所以当RecursiveMystery(5)时,应该进入结束返回函数RecursiveMystery(5/2) 等于0 + 101(因为在 RecursiveMystery(5)< 时 s = 1/)。我无法理解它是如何返回 101 的。

最佳答案

如果您调用 RecursiveMystery(5),它会返回 RecursiveMystery(2) + "1"。所以我们必须评估 RecursiveMystery(2),它返回 RecursiveMystery(1) + "0"RecursiveMystery(1) 返回“1”。

因此

RecursiveMystery(5) = RecursiveMystery(2) + "1"= RecursiveMystery(1) + "0"+ "1"= "1"+ "0"+ "1"= "101"

关于 RecursiveMystery 方法的更多信息。它计算数字 n 的二进制表示。如果 n 是奇数,它在最后写一个 1,如果 n 是偶数,它在最后写一个 0 .而 n/2 只是数字 n 没有最后一位(二进制表示)。

关于C++ 理解递归函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27410010/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com