myfact (n) Funktion berechnen Fakultät von n.Wie kann ich verschachtelte rekursive Funktion in Matlab schreiben
function [ fact ] = myfact(x)
temp = 0;
if (x == 1)
temp = 1;
else
temp = x*myfact(x-1);
end
fact = temp;
end
Die Funktion myfactSum() berechnet die Summe der Rückgabewerte von "myfact". factNums ist ein Array, das die Fakultät jedes Werts enthält. Zum Beispiel: factNums (2) = 2!
function [total] = myfactSum(n,factNums)
if(n==1)
return
else
result = myfact(n);
factNums(n) = result;
total=sum(factNums);
myfactSum(n-1,factNums);
end
end
Testing es Skript oben;
n = 4;
factNums = zeros(1,n);
x=myfactnum(n,factNums);
y=0;
for i=1:checkValues
y=y+myfact(i);
end
Zu den Ergebnissen Skript x = 24, y = 33 Eine rekursive und Schleife richtige Antwort finden, jedoch verschachtelt rekursive Funktionen geben nur die Fakultät letzten Wert. Ich versuche, die rekursiven Funktionen zu debuggen, füllt es die factNums mit Werten [1,2,6,24] Ende der Funktionswerte, aber wenn es zurück zu Hauptscript-Werten verschwindet.
Sie kehren 'total = Summe (factNums)', dieser Wert ist, die Summe aus '[1,2,6,24]' was korrekt als '33' ausgegeben wird. Mach einfach die Summe nicht, wenn du die Summe nicht willst ... – Wolfie