题目
代码实现
package meiju;
public class HuoChai {
public static void main(String[] args) {
System.out.println(huochai(20));
}
public static int huochai(int in){
in-=4;//+号和=号要占4根火柴
int sum=0;
int a=0,b=0,c=0;//分别表示A、B、C的大小
//枚举a和b
for(a=0;a<=1111;a++){//1111表示近似值精确值是711
for(b=0;b<=1111;b++){
c=a+b;//计算出c
if(fun(a)+fun(b)+fun(c)==in){//a的火柴数+b的火柴数+c的火柴数=提供的火柴数
System.out.println(a+"+"+b+"="+c);
sum++;
}
}
}
return sum;
}
//计算一个数所需要的火柴数量
public static int fun(int x){
int num=0;//计数常亮,初始为0
int arr[]={6,2,5,5,4,5,6,3,7,6};//储存0~9数字所需要的火柴数
while(x/10!=0){//如果x/10的商不为0,则表示这至少是两位数
num+=arr[x%10];//获得x的末尾数数并将此数所需要的火柴数累加到num中
x=x/10;//去掉末尾数,例如x的值为123,则现在x的值为12
}
num+=arr[x];//最后加上此时x所需要用到的火柴棍的根数(此时x一定是一位数)
return num; //返回需要的总火柴数
}
}