zoukankan      html  css  js  c++  java
  • P1149 火柴棒等式(打表初尝试)

    题目描述

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

    注意:

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

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

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

    输入格式

    一个整数 n(n<=24) 

    输出格式

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

    输入输出样例

    输入  
    14
    输出  
    2
    输入  
    18
    输出  
    9

    说明/提示

    【输入输出样例1解释】

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

    【输入输出样例2解释】

    个等式为:

    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
    思路:打表(第一次尝试,注释代码用来生成表)
    代码:
    #include<cstdio>
    //int cost[10000]={6,2,5,5,4,5,6,3,7,6};
    //int main(){
    //    int sum=0;
    //    for(int i=10;i<10000;i++){
    //        sum=0;
    //        int k=i;
    //        while(k){
    //            sum+=cost[k%10];
    //            k/=10;
    //        }
    //        cost[i]=sum;
    //    }
    //    for(int k=0;k<=24;k++){
    //        sum=0;
    //        for(int i=0;i<5000;i++){
    //            for(int j=0;j<5000;j++){
    //                if(cost[i]+cost[j]+cost[i+j]==k-4){
    //                    sum++;
    //                }
    //              }
    //        }
    //        printf("%d ",sum);
    //    }
    //} 
    int main(){
        int num[25]={0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,8,9,6,9,29,39,38,65,88,128};
        int n;scanf("%d",&n);
        printf("%d",num[n]);
    }
     
  • 相关阅读:
    Appium
    Appium滑动直到页面底部
    使用Maven以及碰到的坑们(持续更新中。。。)
    通过license server激活IntelliJ IDEA
    HDU 1166
    HDU 2444
    HDU 浙江科技学院校赛2016
    HDU 5651
    HDU 5650
    Interview 位运算
  • 原文地址:https://www.cnblogs.com/bjxqmy/p/12199072.html
Copyright © 2011-2022 走看看