火柴棍等式
题解:
#include<stdio.h>
//用来计算一个数所需要火柴跟的总数
int fun(int x){
int num=0; // 用来计数的变量
int f[10] = {6, 2, 5, 5, 4, 5, 6, 3, 7, 6};
//用一个数组来记录0~9每个数字需要用多少根火柴棍
while (x / 10 != 0){ //如果x/10的商不等与0的话,说明这个数至少有两位
//取x末尾数字将需要的火柴棍添加到num
num += f[x % 10];
x = x / 10;
}
//扫尾 (此时x为一位数)
num += f[x];
return num;
}
int main(){
int a, b, c, m, sum = 0;
printf("请输入m:");
scanf("%d", &m);
//开始枚举a和b
for (a = 0 ; a <= 1111 ; a ++){
for (b = 0 ; b <= 1111 ; b ++){
c = a + b;
if (fun(a) + fun(b) + fun(c) == m - 4 ){
printf("%d+%d=%d\n",a, b, c);
sum ++;
}
}
}
printf("一共可以拼出%d个不同的等式\n",sum);
return 0;
}
运行结果:
评论区