本題關鍵主要同時滿足兩個等式 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;
}
加油,一點點進步~