规定时限为1s。规定最多有24根火柴。 分析:
代码实现:#include输入:int pun(int a) { int n, sum = 0; int f[10] = { 6,2,5,5,4,5,6,3,7,6 }; while (a / 10 != 0) {//如果a不是只有一位数的话 n = a % 10;//取得个位数 sum += f[n];//取得这个个位数用了几根火柴 a = a / 10; } sum += f[a];//最后再加上最后的一个数的火柴 return sum; } int main() { int sum, i, j,n,m; sum = 0; printf("你有几根火柴?"); scanf_s("%d",&n);//读取火柴数 for(i=0;i<=1111;i++)//枚举 for (j = 0; j <= 1111; j++) { m = i + j; if (pun(m) + pun(i) + pun(j) == n - 4) { printf("%d + %d = %d n", i, j, m); sum++; } } printf("一共有可以拼出 %d 个等式。", sum); getchar(); getchar(); return 0; }
你有几根火柴?18输出:
0 + 4 = 4 0 + 11 = 11 1 + 10 = 11 2 + 2 = 4 2 + 7 = 9 4 + 0 = 4 7 + 2 = 9 10 + 1 = 11 11 + 0 = 11 一共有可以拼出 9 个等式。总结:
使用枚举即可。



