poj-1247 Magnificent Meatballs
#include <stdio.h> #include <stdlib.h> #define MAX_NUM 3 int findPosSE(int n) { int meatBalls[n]; int sum = 0; int i; for (i=0; i<n; i++) { scanf("%d",&meatBalls[i]); sum+=meatBalls[i]; } if(sum%2==1) return -1; int half=sum/2; for(i=0; i<n; i++) { if(half==meatBalls[i]) return i+1; half-=meatBalls[i]; } } int main() { int n; while(scanf("%d",&n)!=EOF && n!=0) { int s_pos=findPosSE(n); if(s_pos==-1) printf("Not Find Position...\n"); else printf("Position: %d %d",s_pos,s_pos+1); } return 0; }
先上学长的完美代码🆒
2019-11-30
1247 把题读懂 多想想主要的过程 把思路梳理🌤 先干什么后干什么 然后再开始写
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 30
void find(int n);
void print(int flag,int Sam);
int main()
{
int n;
while(scanf("%d",&n) && n!=0)
{
find(n);
}
return 0;
}
void print(int flag,int Sam)
{
if(flag)
{
printf("No equal partitioning.\n");
}
else
{
printf("Sam stops at position %d and Ella stops at position %d.\n",Sam,Sam+1);
}
}
void find(int n)
{
int num;
int sums[N],sum;
memset(sums,0,sizeof(sums));
int i,j;
int Sam,flag=1;
for(i=1; i<=n; i++)
{
scanf("%d",&num);
sums[i]=sums[i-1]+num;
}
sum=sums[n];
for(j=1; j<n; j++)
{
if(2*sums[j]==sum)
{
flag=0;
Sam=j;
break;
}
}
print(flag,Sam);
}
Aim: Buaa

浙公网安备 33010602011771号