P1149 火柴棒等式

题目描述

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

注意:

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

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

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

输入输出格式

输入格式:

 

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

 

输出格式:

 

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

 

 1 #include<iostream>
 2 int num[10] = { 6,2,5,5,4,5,6,3,7,6 };
 3 int getsum(int a) {
 4     int sum = 0;
 5     do {
 6         sum += num[a % 10];
 7         a /= 10;
 8     } while (a != 0);
 9     return sum;
10 }
11 int main() {
12     using namespace std;
13     int x, sum = 0;
14     cin >> x;
15     x -= 4;
16     for (int i = 0; i < 999; i++) {
17         for (int j = 0; j < 1000; j++) {
18             if (getsum(i)+getsum(j)+getsum(i+j) == x) {
19                 sum++;
20             }
21         }
22     }
23     cout << sum;
24     return 0;
25 }

 

posted @ 2019-07-17 02:07  杰尊  阅读(270)  评论(0编辑  收藏  举报