In diesem Code versuche ich das Konzept der Rekursion zu verstehen, aber ich verfehle völlig den Punkt: sum(arr, n) = sum(arr, n - 1) + arr[n - 1];
Ich habe diesen Code:
function sum(arr, n){ if(n <= 0){ return 0; } else { return sum(arr, n - 1) + arr[n - 1]; } } console.log(sum([5, 4, 7, 9, 2, 6], 5);
Ich versuche den Ausdruck zu verstehen: sum(arr, n - 1) + arr[n - 1];
Ist dies der Fall: In sum(arr, n - 1)
ist n (Index - 1) oder (n - 1) die Länge des hinzuzufügenden Array-Elements. Und wie sieht es danach mit dem zweiten Ausdruck arr[n - 1] aus? Ist [n-1] ein Array-Element? Da es sich in einem Array befindet, gibt es „[]“.
Es tut mir leid, wenn irgendetwas dumm oder nervig ist, aber wenn mir jemand helfen könnte, den richtigen Weg zu weisen, wäre ich sehr dankbar.
你的函数
sum(arr,n)
可以描述为计算arr[0]+...+arr[n-1]
。这等同于
arr[0]+...+arr[n-2]+arr[n-1]
这等同于
sum(arr,n-1) + arr[n-1]
唯一不适用这个规则的情况是当
n<=0
时,此时和为0。