我有这样的代码:Ç递归函数
#include <stdio.h>
#include <stdlib.h>
int func(int n0, int n);
int main()
{
int n0, n, nFinal=0;
printf ("Enter constant (n0): ");
scanf ("%d", &n0);
printf ("Enter the number of iteractions (n): ");
scanf ("%d", &n);
nFinal = func(n0, n);
printf ("nFinal after %d iteractions is %d: \n", n, nFinal);
return 0;
}
int func(int n0, int n){
int i,nFinal=0;
for (i = 0; i < n; i++){
nFinal = (nFinal*nFinal) + n0;
}
return nFinal;
}
的nFinal被内计算环路。我想达到相同的结果,但做一个递归函数。
从我看到的,我不能改变函数调用,因为我总是需要开始数和迭代次数。因此,在第一次迭代之后,程序将不得不再次调用nFinal = func (n0, n);
,但正如我在nFinal的计算值的每次迭代中所需要的那样,我将不得不改变这一点。
是否可以做一个递归函数,但保持nFinal = func (n0, n);
的功能?
有人能指点我吗?
在函数'func'的主体中,您已经在初始化之前使用了'nFinal'。它是否正确? – Chris 2012-04-15 10:12:34
@克里斯对不起。 nFinal初始化为零 – Favolas 2012-04-15 10:17:40