将迭代函数转换为递归函数 - C

Hél*_*ira 1 c recursion

编辑:不是家庭作业,我试图解决过去几年的测试,只是学习.

我有这个功能,并想知道采取什么步骤将其转换为递归的.

这是我的函数,它将N个第一个奇数加起来:

4^2 = 1+3+5+7 = 16;

int quadIT(int n){

    int x=0;
    int z=1;
    int y=n;

    while(y>0){
        x+=z;
        z+=2;
        y--;
    }

    return x;
}
Run Code Online (Sandbox Code Playgroud)

可能上面的功能不是最好的方法.

我很感激这里的任何帮助.

Mik*_*vey 5

我不想给你一个直接的答案,而是告诉你大致如何做到这一点.这两个是等价的:

int foo(int n){
    if (n == 0){
        return something
    } else {
        do something
        return foo(n-1);
    }
}

while(n > 0){
    do something
    n--;
}
Run Code Online (Sandbox Code Playgroud)

  • 这不是家庭作业,这是过去一年的考试问题.我工作,不能上大学的课,所以我从家里学到了什么. (2认同)