zoj 1402 题目解答:zoj1402 给 n 个数,问能不能把这 n 个数分成相等的两部分。
解题思路:
先算出总和,如果是奇数就不可分。否则,从左开始加,加到一半为止。
代码如下:
- #includeint main() {
- int n,
- i,
- num[100];
- int sam,
- sum;
- while (scanf("%d", &n) != EOF && n) {
- num[0] = 0;
- for (i = 1; i <= n; i++) {
- scanf("%d", &num[i]);
- num[0] += num[i];
- }
- if (num[0] % 2) {
- printf("No equal partitioning.\n");
- continue;
- }
- sam = 0;
- sum = 0;
- num[0] /= 2;
- for (i = 1; i <= n; i++) {
- sum += num[i];
- if (sum == num[0]) {
- sam = i;
- break;
- }
- if (sum > num[0]) {
- sam = 0;
- break;
- }
- }
- if (sam) {
- printf("Sam stops at position %d and Ella stops at position %d.\n", i, i + 1);
- } else printf("No equal partitioning.\n");
- }
- return 0;
- }
就爱阅读 www.92to.com 网友整理上传, 为您提供最全的知识大全, 期待您的分享,转载请注明出处。
来源: