一只贪吃的猴子,来到一个果园,发现许多串香蕉排成一行,每串香蕉上有若干根香蕉。每串香蕉的根数由数组numbers给出。猴子获取香蕉,每次都只能从行的开头或者末尾获取,并且只能获取N次,求猴子最多能获取多少根香蕉。
#include <stdio.h>
int main() {
int a[1000]={0};
int count=0;
int t=0;
int N;
char temp=0;
scanf("%d",&N);
do{
scanf("%d",&a[count++]);
temp=getchar();
}while(temp!='\n');
int i=0;
int result=0;
int sum=0;
for(int i=0;i<=N;i++){
sum=0;
int j=0;
for(j=0;j<i;j++){
sum+=a[j];
}
int c=count-1;
j=N-i;
while(j!=0){
sum+=a[c--];
j--;
}
if(sum>result){
result=sum;
}
}
printf("%d",result);
return 0;
}
//解决重复运算问题
#include<stdio.h>
int main() {
int a[1000] = {0};
int count = 0;
int t = 0;
int N;
char temp = 0;
scanf("%d", &N);
do {
scanf("%d", &a[count++]);
temp = getchar();
} while (temp != '\n');
int sum=0;
for(int i=0;i<N;i++){
sum+=a[i];
}
int best=sum;
for(int i=0;i<N;i++){
sum=sum+a[count-1-i]-a[N-i-1];
best=sum>best?sum:best;
}
printf("%d",best);
return 0;
}