现手中有m(m<=24)个火柴棍,希望拼出A+B=C等式。等式中的A、B、C均为火柴棍拼出来的整数(若该数非0,则最高位不能为0)。
注意:
1、加号与等号各自需要2根火柴棍;
2、如果A不等于B,则A+B=C与B+A=C视为不同的等式(三者均大于0);
3、所有根火柴棍必须全都用上。
#include<stdio.h> int fun(int x)//测试每个数字由多少个火柴拼成// { int num=0; int f[10]={6,2,5,5,4,5,6,3,7,6};//构造数表,直接从中查询// while(x/10!=0)//用while循环,逐位判断,不能用if// { num=num+f[x%10]; x=x/10; } num=num+f[x]; return num; } int main() { int a,b,c,n; int sum=0; scanf("%d",&n); for(a=0;a<1111;a++)//十个数包含零// { for(b=0;b<1111;b++) { c=a+b;//c直接由a,b表示出// if(fun(a)+fun(b)+fun(c)==n-4) { printf("%d+%d=%d ",a,b,c); sum++; } } } printf("一共可以拼出%d个不等式 ",sum); }