火柴棒等式

时间限制: 1000 ms 内存限制: 65536 kb
总通过人数: 192 总提交人数: 194
Special Judge

题目描述

给你 $n$ 根火柴棍,你可以拼出多少个形如 $A+B=C$ 的等式?等式中的 $A$、$B$、$C$ 是用火柴棍拼出的整数(若该数非零,则最高位不能是 $0$)。用火柴棍拼数字 $0\sim9$ 的拼法如图所示:

注意:

  1. 加号与等号各自需要两根火柴棍;
  2. 如果 $A\neq B$,则 $A+B=C$ 与 $B+A=C$ 视为不同的等式($A,B,C\geq0$);
  3. $n$ 根火柴棍必须全部用上。

输入格式

输入含多组输入数据(不超过 $10$ 组),每组一行一个整数 $n(1 \leq n\leq 24)$。

输出格式

对于每组数据,输出一个整数,能拼成的不同等式的数目。每组数据之间用换行隔开。

样例

样例输入

14
18

样例输出

2
9

BUG 代码

#include<stdio.h>
int a[10]={6,2,5,5,4,5,6,3,7,6};
int stick(int i)
{
    int rs=0,k;
    while(i)
    {
        k=i%10;
        rs+=a[k];
        i/=10;
    }
    return rs;
}
int main()
{

    int n,i;
    while(scanf("%d",&n)!=EOF)
    {
        n-=4;
        int cnt=0;
        for(i=1;i<=1000;i++)
        {
            for(int j=i;j<=1000;j++)
            {
                if(stick(i)+stick(j)+stick(i+j)==n); 
                {
                    cnt++;
                }
            }
        }
        printf("%d\n",cnt);
    }
    return 0;
}

Author: Clay17

相关推荐