gpt4 book ai didi

c++ - 混淆的C递归代码请解释

转载 作者:行者123 更新时间:2023-11-30 21:45:32 25 4
gpt4 key购买 nike

我正在尝试从书中学习递归,但有些东西对我来说解释得不够清楚。

以下代码

int f(int n, int x, int y)
{
if(n==0) return x+y;
if(y==0) retun x;
return f(n-1,f(n,x,y-1),f(n,x,y-1)+y);
}

如果我调用 f(1,2,2); 会发生什么

任何帮助解释和感谢

最佳答案

int f(int n, int x, int y)
{
int result;

if(n==0) {
printf("f(%d, %d, %d) -> %d\n", n, x, y, x+y);
return x+y;
}
if(y==0) {
printf("f(%d, %d, %d) -> %d\n", n, x, y, x);
return x;
}

printf("recursing for f(%d, %d, %d)...\n", n, x, y);
result = f(n-1,f(n,x,y-1),f(n,x,y-1)+y);
printf("f(%d, %d, %d) -> %d\n", n, x, y, result);
return result;
}

您的代码没有被混淆。您指的是您未发布的内容吗?

关于c++ - 混淆的C递归代码请解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16748928/

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