• 洛谷 P1149 火柴棒等式


    链接:https://www.luogu.org/problemnew/show/P1149

    题目:

      题目描述

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

            

      注意:

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

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

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

      输入输出格式

      输入格式:

      一个整数n(n<=24)

      输出格式:

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

      输入输出样例

      输入样例#1: 
      14
      输出样例#1: 
      2
      输入样例#2: 
      18
      输出样例#2: 
      9

      说明

      【输入输出样例1解释】

      2个等式为0+1=10+1=1和1+0=11+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

    思路:

      思路也挺清晰的,直接遍历,0-9的火车不一样,用数组记录,借助count函数寻找ABC需要的火柴,二重循环遍历找的所有合适的解。

      1100:数字随手写的,因为上限只有24,只有20根可以组成数字,按照929分组,只能有四个大于1000的数:7111,1711,1171,1117,这四个数都无法得到等式,所以构成结果的ABC一定都小于1000,所以这里写1000即可。其实可以算出上限还要低一点,不过也没啥大问题,用1000就行。

      (最近有点忙,所以没想啥骚操作)

    代码:

     1 #include<iostream>
     2 
     3 using namespace std;
     4 
     5 int num[10] = {6,2,5,5,4,5,6,3,7,6};
     6 
     7 int count(int x)
     8 {
     9     if(x==0)
    10         return num[0];
    11     int res=0;
    12     while(x)
    13     { 
    14         res = res + num[x%10]; 
    15         x = x / 10; 
    16     }
    17     return res;
    18 }
    19 
    20 int main()
    21 {
    22     int n;
    23     int sum=0;
    24     cin>>n;
    25     n=n-4;
    26     if(n<=8)
    27     {
    28         cout<<"0";
    29         return 0;
    30     }
    31 
    32     for(int i=0;i<1100;i++)
    33     {
    34         for(int j=0;j<1100;j++)
    35         {
    36             int k = i + j;
    37             if(count(i)+count(j)+count(k)==n)
    38                 sum++;
    39         }
    40     }    
    41     cout<<sum<<endl;
    42     return 0;
    43 } 
  • 相关阅读:
    Node.js模块风格在浏览器中的尝试
    Node.js的模块写法入门
    JavaScript中“+”的陷阱(续)
    Firefox/Chrome/Safari的中可直接使用$/$$函数进行调试
    使用r.js压缩整个项目的JavaScript文件
    拥抱模块化的JavaScript
    图片播放(3)
    JavaScript中“+”的陷阱
    仅IE6/7浏览器SPAN元素包含块级元素会使SPAN的背景色显示
    JavaScript模态对话框类(拖拽时动画)
  • 原文地址:https://www.cnblogs.com/blogxjc/p/11193535.html
Copyright © 2020-2023  润新知