用c++编程 acm模式 输入n个整数 如果能分成相等的两份 就返回true 否则返回false
时间: 2023-05-26 18:04:59 浏览: 53
#include<stdio.h>
int main(){
int n,i,sum=0,a[1001];
scanf("%d",&n); // 输入整数个数
for(i=0;i<n;i++){
scanf("%d",&a[i]); // 依次输入每个整数
sum+=a[i]; // 将所有整数加起来求和
}
if(sum%2==1) // 如果整数总和为奇数,无法分成相等的两份
printf("false\n");
else{
int half=sum/2,cnt=0;
for(i=0;i<n;i++){
cnt+=a[i]; // 依次将整数累加起来,统计累加和是否等于整数总和的一半
if(cnt>half) // 如果累加和已经大于总和的一半,说明无法分成相等的两份
break;
else if(cnt==half){ // 如果累加和等于总和的一半,说明能够分成相等的两份
printf("true\n");
break;
}
}
if(cnt<half) // 如果所有整数累加起来都还没有达到总和的一半,说明无法分成相等的两份
printf("false\n");
}
return 0;
}