P1149 火柴棒等式

题目描述

给你n根火柴棍,你可以拼出多少个形如“ A+B=C”的等式?等式中的 A 、 B 、 C 是用火柴棍拼出的整数(若该数非零,则最高位不能是 00 )。

用火柴棍拼数字 0-9 的拼法如图所示:

注意:

  1. 加号与等号各自需要两根火柴棍

  2. 如果 A≠B ,则 A+B=C 与 B+A=C 视为不同的等式( A,B,C>=0 )

  3. n 根火柴棍必须全部用上

输入输出格式

输入格式:

 

一个整数 n(n<=24) 。

 

输出格式:

 

一个整数,能拼成的不同等式的数目。

 

输入输出样例

输入样例#1: 复制
14
输出样例#1: 复制
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<iostream>
 2 #include<cstdio>
 3 #include<cmath>
 4 #include<algorithm>
 5 #include<cstring>
 6 using namespace std;
 7 
 8 int a[2002],b[2002]={6,2,5,5,4,5,6,3,7,6};
 9 int n,ans;
10 
11 int main()
12 {
13     scanf("%d",&n);
14     for(int i=1;i<=2000;++i)
15     {
16         int j=i;
17         while(j)
18         {
19             a[i]+=b[j%10];
20             j/=10;
21         }
22     }
23     a[0]=6;
24     for(int i=0;i<=1000;++i)    
25         for(int j=0;j<=1000;++j)    
26             if(a[i]+a[j]+a[i+j]==n-4)
27                 ans++;
28     printf("%d",ans);
29     return 0;
30 }

如果你不开心,那我就把右边这个帅傻子分享给你吧,
你看,他这么好看,跟个zz一样看着你,你还伤心吗?
真的!这照片盯上他五秒钟就想笑了。
一切都会过去的。
时间时间会给你答案2333
posted @ 2018-08-02 11:45  孟东行#  阅读(576)  评论(2编辑  收藏  举报