[英]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.