火柴棒等式
可恶啊我居然还是被水题打败了,什么时候我能完全把水题过了啊呜呜呜呜
## 题目描述
给你 n 根火柴棍,你可以拼出多少个形如 A+B=C 的等式?等式中的 A、B、C 是用火柴棍拼出的整数(若该数非零,则最高位不能是 0.
注意:
1. 加号与等号各自需要两根火柴棍;
2. 如果 A\neq B,则 A+B=C 与 B+A=C 视为不同的等式(A,B,C\geq0);
3. n 根火柴棍必须全部用上。
## 输入格式
一个整数 n(1-24)
## 输出格式
一个整数,能拼成的不同等式的数目。
## 样例 #1
### 样例输入 #1
```
14
```
### 样例输出 #1
```
2
```
## 样例 #2
### 样例输入 #2
```
18
```
### 样例输出 #2
```
9
```
## 提示
【输入输出样例 1 解释】
2 个等式为 0+1=1 和 1+0=1。
【输入输出样例 2 解释】
9 个等式为
0+4=4、0+11=11、1+10=11、2+2=4、2+7=9、4+0=4、7+2=9、10+1=11、11+0=11。
1 #include<bits/stdc++.h> 2 using namespace std; 3 int p[1000010]={6},n,a[10]={6,2,5,5,4,5,6,3,7,6},res;//注意这里要把p数组全部变成0的模样; 4 int main() 5 { 6 cin>>n; 7 for(int i=1;i<=2000;i++) 8 { 9 int x=i; 10 while(x>=1) 11 { 12 p[x]+=a[x%10]; 13 x/=10; 14 } 15 } 16 for(int i=0;i<=1000;i++) 17 for(int j=0;j<=1000;j++) 18 if(p[i]+p[j]+p[i+j]==n-4) res++; 19 cout<<res; 20 return 0; 21 }

浙公网安备 33010602011771号