给定一个环形数组,保证数组元素之和为零,现在允许将数组进行切割,求最多分成多少个总和为零的片段。完整C++代码
时间: 2024-06-04 19:13:47 浏览: 23
c++源代码用于将1到100的数求和
5星 · 资源好评率100%
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
int nums[n];
int sum = 0;
for (int i = 0; i < n; i++) {
scanf("%d", &nums[i]);
sum += nums[i];
}
if (sum != 0) { // 数组元素之和不为零
printf("-1\n");
return 0;
}
int count = 0;
int cur_sum = 0;
for (int i = 0; i < n; i++) {
cur_sum += nums[i];
if (cur_sum == 0) { // 当前位置可以分割
count++;
}
}
printf("%d\n", count);
return 0;
}
阅读全文