P1149(火柴棒等式)

给你n根火柴棍,你可以拼出多少个形如“A+B=C”的等式?等式中的A、B、C是用火柴棍拼出的整数(若该数非零,则最高位不能是0)。用火柴棍拼数字0−9的拼法如图所示:

注意:

加号与等号各自需要两根火柴棍

如果A≠B,则A+B=C与B+A=C视为不同的等式(A,B,C>=0)

n根火柴棍必须全部用上

#include<stdio.h>

int main()
{

    int a[2001] = {6}, b, c[10] = {6, 2, 5, 5, 4, 5, 6, 3, 7, 6}, s = 0, i, j;

    scanf("%d", &b);

    for (i = 1; i <= 2000; i++)

    {

        j = i;

        while (j >= 1) //求每个数所用的火柴棒

        {

            a[i] = a[i] + c[j % 10];

            j = j / 10;

        }

    }

    for (i = 0; i <= 1000; i++)

    {

        for (j = 0; j <= 1000; j++)

            if (a[i] + a[j] + a[i + j] + 4 == b)

                s++; //还有加号与等号

    }

    printf("%d", s);

    return 0;

}

是真的牛啊
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 题目:给你n根火柴棍,你可以拼出多少个形如A+B=C的等式?等式中的C是用火柴棍拼出的整数(若该数非零,则最高位不...
    JalorOo阅读 1,150评论 0 0
  • 解析:本题的火柴数有范围限制(n<=24),所以可以大致判断加数的范围在1000以内,那么我们只需要遍历2000以...
    CPPZWW阅读 3,471评论 0 0
  • 程序说明 估计最大的数不超过1111,因为1111+1=1112需要的火柴数会大于24。先计算出1111以内所有的...
    03530b324b78阅读 2,860评论 0 0
  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 8,712评论 0 2
  • 计算机二级C语言上机题库(南开版) 1.m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平...
    MrSunbeam阅读 11,526评论 1 42