我有这个代码:
#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 在 for 循环中计算。我想实现相同的结果,但执行递归函数。
从我所见,我无法更改函数调用,因为我总是需要起始编号和迭代次数。因此,在第一次迭代之后,程序将不得不再次调用,nFinal = func (n0, n);
但由于我需要在每次迭代 nFinal 的计算值时,我将不得不改变它。
是否可以创建递归函数但将函数保持为nFinal = func (n0, n);
?
有人可以指点我吗?