**数组a[i]:**拼成数字i需要的火柴根数
数组a的大小为什么是2001呢?
因为输入的n最大是24 , 所以拼9的话,三个9要用18根,还有6根,4根用来拼等号和加号,还有2根,只能拼1,所以拼成的最大的数是1999
import java.util.*;
class Main{
static int res = 0;
static int[] nums = new int[]{6,2,5,5,4,5,6,3,7,6};
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
n -= 4;//减去等号和加号的4根
int[] a = new int[2001];
a[0] = 6;// 0不大于等于1,所以这里直接赋值
for(int i = 1 ; i <= 2000 ; i++)
{
int j = i;
while(j >= 1) //计算拼成i需要多少根火柴
{
a[i] = a[i] + nums[j%10];
j = j / 10;
}
}
for(int i = 0 ; i <= 1000 ; i++)//这里最大1000 , 不太懂,反正弄大点就对了
{
for(int j = 0 ; j <= 1000 ; j++)
{
if(a[i]+a[j]+a[i+j] == n)
res++;
}
}
System.out.println(res);
}
}