0分求解 自己开程序试正确,提交时错误 感谢大佬们

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

我没有读懂你的代码,我是这样做的,希望对你有帮助! ```cpp #include <bits/stdc++.h> using namespace std; int a[105]; bool ans[20005]; int main() { int n,sum=0; 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++) for(int j=i+1;j<=n;j++) ans[a[i]+a[j]]=true;//能分解成两个不同数相加 for(int i=1;i<=n;i++)//扫一遍,有多少个符合要求 sum+=ans[a[i]]; cout<<sum<<endl; return 0; } ```
by sunyizhe @ 2022-10-06 15:46:41


``` int arr[a],pl[20000]; ``` 应该是先读入a再初始化吧。 另外建议用全局数组,arr开到10001.
by sichao @ 2022-10-06 15:47:47


```cpp #include<iostream> using namespace std; int main(){ int a,c; cin>>a; int arr[a],pl[20000]={0}; for(int i=0;i<a;i++){ cin>>arr[i]; } for(int i=0;i<a;i++){ for(int k=i+1;k<a;k++){ for(int j=0;j<a;j++){ if(arr[j]!=arr[k]&&arr[j]!=arr[i]&&arr[i]+arr[k]==arr[j]&&pl[j]!=1) { c++; pl[j]=1; } } } } cout<<c; // return 0; } ```
by siyue @ 2022-10-06 15:48:52


|