gpt4 book ai didi

c - 使用递归求适用整数的总和

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

我试图取一个整数 (X) 并使用递归来查找适用于 X 之前的特定条件的数字总和。例如,给定 10 并使用可被 2 或 3 整除的条件,总和将为5.

我已经使用了不同的循环来解决问题,现在尝试使用递归进行练习。

       int sum(int n) {
int totalSum;
if (n==0)
return 0;
else {
if ((n%2==0)||(n%3==0)){
totalSum+= sum(n-1);
return totalSum;
}
else {
totalSum=sum(n-1);
return totalSum;
}
}
}

我总是收到零或令人难以置信的高数字。

最佳答案

totalSum+= sum(n-1);

不可能是正确的。您从未初始化过totalSum,那么向其中添加一些内容怎么可能是正确的呢?即使 C 自动初始化变量,它也可能会将其初始化为 0,因此这相当于 totalSum = sum(n-1);,这是同一件事当n不是23的倍数时,您会这样做。

请注意,您的两个条件都没有将当前迭代变量添加到任何内容中。您应该添加 n,而不是 totalSum:

totalSum = n + sum(n-1);

关于c - 使用递归求适用整数的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58070687/

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