Dalam kod ini, saya cuba memahami konsep rekursi, tetapi saya benar-benar kehilangan maksud: sum(arr, n) = sum(arr, n - 1) + arr[n - 1];
Saya ada kod ini:
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);
Saya cuba memahami ungkapan: sum(arr, n - 1) + arr[n - 1];
Adakah ini kesnya: Dalam sum(arr, n - 1)
, n ialah (indeks - 1) atau (n - 1) ialah panjang item tatasusunan yang akan ditambah. Selain itu, selepas melakukan ini, bagaimana pula dengan ungkapan kedua arr[n - 1]. Adakah [n-1] elemen tatasusunan?
Maaf jika ada yang bodoh atau menjengkelkan, tetapi jika sesiapa boleh membantu menunjukkan saya ke arah yang betul, saya amat berterima kasih.
Fungsi anda
sum(arr,n)
可以描述为计算arr[0]+...+arr[n-1]
.Ini bersamaan dengan
arr[0]+...+arr[n-2]+arr[n-1]
Ini bersamaan dengan
sum(arr,n-1) + arr[n-1]
Satu-satunya kes di mana peraturan ini tidak terpakai ialah apabila
n<=0
, di mana jumlahnya ialah 0.