发生了shenme

P1149 [NOIP2008 提高组] 火柴棒等式

数组越界了
by Beyond_Heaven @ 2022-02-04 11:10:58


`a [10-1000]` 未初始化;数组越界。
by Makyk @ 2022-02-04 11:11:40


???
by ShenRuochen @ 2022-02-04 11:11:52


```cpp for(int i=0;i<=1000;i++) for(int j=0;j<=1000;j++) if(a[i]+a[j]+a[i+j]+4==n) cnt++; ``` 中 `a[i+j]` 下标越界了。
by Makyk @ 2022-02-04 11:12:34


AC了 ```cpp #include <bits/stdc++.h> using namespace std; int main() { int a[2001],b[10]={6,2,5,5,4,5,6,3,7,6},n,cnt=0; scanf("%d",&n); memset(a,0,sizeof(a)); for(int i=0;i<=9;i++)a[i]=b[i]; for(int i=10;i<=2000;i++) { int t=i,p; while(t!=0) { p=t%10; a[i]+=b[p]; t/=10; } } for(int i=0;i<=1000;i++) for(int j=0;j<=1000;j++) if(a[i]+a[j]+a[i+j]+4==n) cnt++; cout<<cnt<<endl; return 0; } ```
by ShenRuochen @ 2022-02-04 11:20:48


@[ShenRuochen](/user/591979) ~~其实你完全可以定义到全局变量里的~~
by liyihan1025 @ 2022-06-26 21:04:12


|