描述
给你n根火柴棍,你可以拼出多少个形如“A+B=C”的等式?等式中的A、B、C是用火柴棍拼出的整数(若该数非零,则最高位不能是0)。用火柴棍拼数字0-9的拼法如图所示:
注意:
- 加号与等号各自需要两根火柴棍
- 如果A≠B,则A+B=C与B+A=C视为不同的等式(A、B、C>=0)
- n根火柴棍必须全部用上
分析:
1、利用枚举的方法解决这个问题
2、a和b的枚举范围在0~1111之间,因为假如a为1,则需要两个火柴棍,剩下18根(因为加号和等号需要4根)c肯定大于b,所以b最大为1111需要8根火柴
3、写一个函数用来计算该数字需要多少根火柴
#include<iostream>
using namespace std;
int main()
{
int sum(int x);
int m;
int f1,f2,f3,n;
cin>>m;
for(f1=0;f1<=1111;f1++)
{
for(f2=0;f2<=1111;f2++)
{
f3=f1+f2;
if(sum(f1)+sum(f2)+sum(f3)==m-4)
{
printf("%d+%d=%d\n",f1,f2,f3);
n++;
}
}
}
printf("%d",n);
return 0;
}