P7631 [COCI2010-2011#5] GLJIVE

· · 题解

因为这十个整数按照顺序给出,所以按照题目模拟即可。

用一个变量记录前缀和,一个记录答案。( abs() 表示绝对值)

#include <bits/stdc++.h>
using namespace std;
int n=10,t,a,ans;
int main() {
    for(int i=1;i<=n;i++){
        scanf("%d",&t);
        a+=t;
        if(abs(ans-100)>abs(a-100))ans=a;//取更接近100的那一个 
        if(abs(ans-100)==abs(a-100))ans=max(ans,a);//一样近,取更大的那一个 
        if(a>100)break;
    }
    printf("%d\n",ans);
    return 0;
}