洛谷-OJ-P1149 火柴棒等式(學習筆記)

本題關鍵主要同時滿足兩個等式 1.數學等式 a+b=c  2.每個數所需火柴棒之和=所擁有火柴棒-4(+,=的火柴棒)
#include <stdio.h>
#include <stdlib.h>
int fun(int x);
int main()
{
    int a,b,c;
    int m,sum=0;
    scanf("%d",&m);
    for(a=0;a<1111;a++)                    //此處爲1111因爲m最大爲24根,取用棒最少的火柴,數字1爲2根,1111爲8根,故每個數最大不超過1111
        {
            for(b=0;b<1111;b++)
            {
                c=a+b;
                if(fun(a)+fun(b)+fun(c)==m-4)  //調用函數對每個數進行火柴棒統計 -4是+號和=號
                {

                    //printf("%d+%d=%d\n",a,b,c);測試數據用
                    sum++;                      //計數器
                }
            }
        }
        printf("%d",sum);

    return 0;
}
int fun(int x)
{
    int s=0;
    int f[10]={6,2,5,5,4,5,6,3,7,6};             //此處用數組記錄每個數所需火柴棒
    while(x/10!=0)                               //判斷若爲爲兩位數,不同的操作,取出除第一位數其他位
    {
        s+=f[x%10];
        x=x/10;
    }
    s+=f[x];                                     //當只有一位數或者爲第一位時
    return s;
}
加油,一點點進步~
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章