80分,C语言

P2141 [NOIP2014 普及组] 珠心算测验

我两个if是为了避免重复判断退出这两个循环。
by wanan2203ouchengli @ 2022-12-31 11:20:55


你可以把数组排序后,用两个指针去找符合条件的值
by VoldemortSZzqq @ 2022-12-31 11:25:21


@[VoldemortSMBH](/user/556217) 还要指针吗,感觉更麻烦了
by wanan2203ouchengli @ 2022-12-31 11:27:31


```cpp #include<bits/stdc++.h> using namespace std; int n,a[10015],ans; int check(int x) { for(int i=1,j=x;i<j;) if(a[i]+a[j]>a[x])j--; else if(a[i]+a[j]<a[x])i++; else return 1; return 0; } int main() { cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; sort(a+1,a+n+1); for(int i=1;i<=n;i++) if(check(i))ans++; cout<<ans; return 0; } ``` 你可以参考一下看可不可以看懂
by VoldemortSZzqq @ 2022-12-31 11:58:21


看不懂,哈哈
by wanan2203ouchengli @ 2022-12-31 14:26:17


|