1
だから私はこのコードを持っている:単純なループを再帰を使用するように変換するにはどうすればよいですか?
WRITELN(“input which member of series”)
READ(n)
p ← 2
prev1 ← 1
prev2 ← 1
WHILE p IS LESS THAN n DO
BEGIN
term ← prev1 + prev2
prev2 ← prev1
prev1 ← term
p ← p + 1
END
WRITELN (“term =”, term)
誰かがそれが(PHPやPascalのいずれかで)再帰的に動作しますので、私はコードを書き換える助けることができます。
EDIT
N = 4
私はPASCALを使用しています。問題は、再帰的なコードは2
を返しながら、これは私の再帰コードで、非再帰的なコードは3を返し、次のとおりです。
program Fibfun;
VAR
n,prev1,prev2,term : Integer;
FUNCTION sw(p:integer):integer;Begin
if p < n then
Begin
term:= prev1 + prev2;
prev2:=prev1;
prev1:=term;
End
else
Begin
p:= 1 + sw(p);
End;
sw:=term;
End;
Begin
prev1:=1;
prev2:=1;
term:=1;
writeln('Input number: ');
readln(n);
writeln('term ', sw(2));
readln;
End.
はこの宿題ですか? – duedl0r
あなたは完全に理解するためにどのような再帰があるのかを理解する必要があります。再帰が完全に理解できることを読むべきです...再帰が完全に理解できることを読む必要があります... http://www.google.com/search? sclient = psy&hl = en&source = hp&q = recursion&pbx = 1&oq = recursu&aq = 2sL&aqi = g-L2g-sL1g-L2&bav = on.2、または.r_gc.r_pw。&biw = 1920&bih = 967 – daGrevis
http://stackoverflow.com/questions/ 717725/understanding-recursion – daGrevis