簡體   English   中英

通過划分數組遞歸計算總和

[英]Compute the sum recursively by dividing array

我正在嘗試創建一個函數來遞歸計算數組中元素的總和。 我想嘗試每次迭代將數組減半的方法。

這是我到目前為止所擁有的。

int sumRec(int *A, int n, int start, int end)
{
     if (start == end){
         return A[end];
     }
     mid = n/2;
     return sumRec(A, n, start, mid) + sumRec(A, n, start, mid + 1);
}

我在正確的軌道上嗎? 謝謝。

您不需要將 n 傳遞給函數。那是不需要的。 目前您的程序將遇到無限遞歸。

您可以使用

mid = (start+end)/2;

您的代碼中還有更多錯誤。

這是一個可以完成這項工作的類似代碼

int sumRec(int *A, int start, int end)
{
     if (start <= end)
     {
        int mid = (start+end)/2;
        return A[mid] + sumRec(A,start, mid-1) + sumRec(A,mid+1,end);
     }
     return 0;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM