私はこのコードを持っています:
#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);
ますか?
誰かが私に何らかの方法を指摘できますか?