利用分治法求一组数据的和,C语言
时间: 2024-05-25 21:16:11 浏览: 90
分治法查找最大最小数的C代码
5星 · 资源好评率100%
#include <stdio.h>
int sum(int arr[], int start, int end) {
if (start == end) { // 如果分到只剩一个元素,直接返回该元素的值
return arr[start];
}
else {
int mid = (start + end) / 2; // 计算中间位置的下标
int left_sum = sum(arr, start, mid); // 左半部分的和
int right_sum = sum(arr, mid + 1, end); // 右半部分的和
return left_sum + right_sum; // 返回左右两部分的和
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);
int s = sum(arr, 0, n - 1);
printf("The sum is %d\n", s);
return 0;
}
阅读全文