目 录CONTENT

文章目录

火柴棍等式

Gz
Gz
2022-05-03 / 0 评论 / 0 点赞 / 356 阅读 / 238 字 / 正在检测是否收录...

火柴棍等式

image-20220503162506257

题解:

#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;
}

运行结果:

image-20220503160600430

0

评论区