[NOIP2008] 火柴棒等式

来源:互联网 发布:淘宝的购物评级在哪儿 编辑:程序博客网 时间:2024/06/11 03:34

220. [NOIP2008] 火柴棒等式

★   输入文件:matches.in   输出文件:matches.out   简单对比
时间限制:1 s   内存限制:128 MB

【问题描述】

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

Image:Noip08match.jpg

注意

  1. 加号与等号各自需要2根火柴棒
  2. 如果A≠B,则A+B=C与B+A=C视为不同的等式(A、B、C>=0)
  3. n根火柴棒必须全部用上

【输入】

输入文件matches.in共一行,有一个整数n(n<=24)。

【输出】

输出文件matches.out共一行,有一个整数,表示能拼成的不同等式的数目。

【输入输出样例1】

matches.in

14

matches.out

2

【输入输出样例1解释】

2个等式为0+1=1和l+0=1

【输入输出样例2】

matches.in

18

matches.out

9

【输入输出样例2解释】

9个等式为:

0+4=40+11=111+10=112+2=42+7=94+0=47+2=910+1=1111+0=11
直接模拟。。枚举A,B。
#include<cstdio>using namespace std;int need[]={6,2,5,5,4,5,6,3,7,6};int ans;int cnt(int cur){    int ans=0,ret;    if(cur==0) return 6;    while(cur>0){        ret=cur%10;        ans+= need[ret];        cur/=10;    }    return ans;}int main(){    freopen("matches.in","r",stdin);    freopen("matches.out","w",stdout);    int n;    scanf("%d",&n);    for(int i=0;i<=1000;i++){       for(int j=0;j<=1000;j++){           int a=cnt(i);  int b=cnt(j);           int d=cnt(i+j);           int c=n-4-a-b;           if(d==c){                ans++;           }       }    }    printf("%d\n",ans);    return 0;}


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 一天大便二三次不消化怎么办 不消化没胃口几天不大便怎么办? 两个月的宝宝拉绿屎怎么办 肠胃不好消化功能差怎么办 2岁宝宝消化不好怎么办 5天新生儿不拉大便怎么办 七个月宝宝一周不拉屎怎么办 七个月的宝宝消化不良怎么办 七个月宝宝消化不良拉肚子怎么办 宝宝六个月了便秘怎么办 宝宝拉水酸臭味怎么办 50天婴儿不拉屎怎么办 六个月宝宝吃米粉便秘怎么办 纯母乳喂养的宝宝便秘了怎么办 换奶粉拉绿色是怎么办 2个月宝宝发烧怎么办 小宝绿色稀大便怎么办 新生儿吃奶粉大便干燥怎么办 婴儿拉绿色奶瓣怎么办 宝宝吃奶粉大便干燥怎么办 婴儿吃奶粉不大便怎么办 孩子喝奶粉拉大便干怎么办 吃奶粉拉不出来怎么办 一岁半宝宝睡觉抱着睡放不下怎么办 3月大婴儿拉奶瓣怎么办 70多天宝宝便秘怎么办 宝宝喝奶粉上火便秘怎么办 a2奶粉吃了便秘怎么办 两个月宝宝两天没有大便怎么办 婴儿一直拉肚子吃药也不好怎么办 吃奶粉的婴儿便秘怎么办 一个多月小狗便便不成形怎么办 3个月宝宝不拉屎怎么办 好几天不拉大便怎么办 20个月宝宝大便干燥怎么办 两月宝宝三天没大便怎么办 六个月宝宝大便干燥怎么办 五个月宝宝拉肚子怎么办拉水样 2个月婴儿拉稀水怎么办 两个月的宝宝拉肚子怎么办 两天了不拉大便怎么办