0
已采纳
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
} for(int i=1;i<=n;i++){
for(int j=i+1;j<=n;j++){
for(int k=j+1;k<=n;k++){
if(a[i]+a[j]==a[k]){
b[a[k]]++; } } } }
for(int i=1;i<=1000;i++){
if(b[i]>0) cnt++; }
cout<<cnt;
0
0
0
用桶:
循环i:1~n{
输入>>a[i];
b[a[i]]=true;
}
循环i:1~n{
循环j:i+1~n{
定义 tmp=a[i]+a[j];
如果(tmp<=1000&&b[tmp]==true){ //顺序一定不能调换
cnt++;
b[tmp]=false;
}
}
}
0
核心:
for(int i=1;i<=n;i++){
for(int j=i+1;j<=n;j++){
for(int k=j+1;k<=n;k++){
if(a[i]+a[j]==a[k]){
b[a[k]]++;
}
}
}
}
for(int i=1;i<=1000;i++){
if(b[i]>0) cnt++;
}
0
0
0


