给你n根火柴棍,你可以拼出多少个形如“A+B=C”的等式?等式中的A、B、C是用火柴棍拼出的整数(若该数非零,则最高位不能是0)。用火柴棍拼数字0−9的拼法如图所示:
注意:
加号与等号各自需要两根火柴棍
如果A≠B,则A+B=C与B+A=C视为不同的等式(A,B,C>=0)
n根火柴棍必须全部用上
#include<stdio.h>
int main()
{
int a[2001] = {6}, b, c[10] = {6, 2, 5, 5, 4, 5, 6, 3, 7, 6}, s = 0, i, j;
scanf("%d", &b);
for (i = 1; i <= 2000; i++)
{
j = i;
while (j >= 1) //求每个数所用的火柴棒
{
a[i] = a[i] + c[j % 10];
j = j / 10;
}
}
for (i = 0; i <= 1000; i++)
{
for (j = 0; j <= 1000; j++)
if (a[i] + a[j] + a[i + j] + 4 == b)
s++; //还有加号与等号
}
printf("%d", s);
return 0;
}