如何将这个递归函数转换为迭代?
int sum(int n) {
if (n < 1) return 1;
return sum(n - 1) * (n - 1) + n;
我能这样做吗?(见下文)
int sum(int n){
if(n<1) return 1;
while(n >= 1){
sum = sum(n-1) * (n-1) + n;
}
return sum;
}
发布于 2021-12-31 11:00:50
您的答案仍然是递归的。
请注意,您有一个基本情况,即n= 0。这是你的和的初始值。然后,您可以对n进行迭代,每次迭代都使用给出的和公式。那么,迭代情况如下所示:
int sum_iterative (int n) {
int sum = 1; //n = 0
for (int i = 1; i <= n; i++) {
sum = sum * (i-1) + i; //sum(n-1) * (n-1) + n
}
return sum;
}
https://stackoverflow.com/questions/70539284
复制相似问题