gpt4 book ai didi

c++ - 在 C++ 中使用递归将数字加倍

转载 作者:行者123 更新时间:2023-11-28 06:32:28 26 4
gpt4 key购买 nike

我在弄清楚如何使用递归将数字加倍时遇到问题,问题是函数必须灵活,它必须能够被调用以将数字加倍然后再次将结果加倍并继续直到它停止.例如,每次你戳一个粘液都会 split 成 2,我需要以某种方式使用递归来表示它(1->2->4->8->16)但是我在努力时遇到了困难很好地理解递归。

我从类似的东西开始

int doublesomething(int N, int X){
return N * X;
}

然后将它放入另一个函数中,但我无法弄清楚如何在没有函数循环和重置数字的情况下将它加倍,我会链接我在这里的代码,但老实说它只是胡言乱语,因为我有点迷路了我自己掉进了递归的兔子洞

int doublethis(int times){
if (times == 0){
return 0;
} else {
int number;
doublesomething(2 , number);
int doubled = doublethis(times - 1);

}
return doubled;
}

这是我所了解的,我认为这是非常错误的。

最佳答案

不知道你是不是为了解决这个问题,可以给个引用。

int doublethis(int times){
int result;
if (times == 0){
result = 1;
}
if(times > 0) {
result = 2 * doublethis(times - 1);
}
printf("%d \n", result);
return result;
}

这是一个简单的递归示例,我认为您可以逐步学习算法,并使用图表来指导算法的过程。如果你输入5次,行为是这样的:

result5 
= 2 * doublethis(4)
= 2 * 2 * doublethis(3)
= 2 * 2 * 2 * doublethis(2)
= 2 * 2 * 2 * 2 * doublethis(1)
= 2 * 2 * 2 * 2 * 2 * doublethis(0)
print result0
print result1
print result2
print result3
print result4
print result5

关于c++ - 在 C++ 中使用递归将数字加倍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27309701/

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