题目描述
给你n根火柴棍,你可以拼出多少个形如“A+B=CA+B=CA+B=C”的等式?等式中的AAA、BBB、CCC是用火柴棍拼出的整数(若该数非零,则最高位不能是000)。用火柴棍拼数字0−90-90−9的拼法如图所示:
注意:
-
加号与等号各自需要两根火柴棍
-
如果A≠BA≠BA≠B,则A+B=CA+B=CA+B=C与B+A=CB+A=CB+A=C视为不同的等式(A,B,C>=0A,B,C>=0A,B,C>=0)
-
nnn根火柴棍必须全部用上
输入输出格式
输入格式:
一个整数n(n<=24)n(n<=24)n(n<=24)。
输出格式:
一个整数,能拼成的不同等式的数目。
1 #include2 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 }