PS:这道题可以把0~9所需要的火柴棒数用数组记下来,如s[0]=6,OVO
题意:给你n根火柴棍,你可以拼出多少个形如“A+B=C”的等式?等式中的A、B、C是用火柴棍拼出的整数(若该数非零,则最高位不能是0)。用火柴棍拼数字0−9的拼法如图所示:
注意:
-
加号与等号各自需要两根火柴棍
-
如果A≠B,则A+B=C与B+A=C视为不同的等式(A,B,C>=0)
- n根火柴棍必须全部用上
1 #include<stdio.h> 2 int i,j; 3 int s[2005]= {6}; 4 int n; 5 int a[10]= {6,2,5,5,4,5,6,3,7,6}; 6 int sum=0; 7 int main() 8 { 9 scanf("%d",&n); 10 for(i=1; i<=2000; i++) 11 { 12 j=i; 13 for(j=i; j>=1;) 14 { 15 s[i]=s[i]+a[j%10]; 16 j=j/10; 17 } 18 } 19 for(i=0; i<=1000; i++) 20 { 21 for(j=0; j<=1000; j++) 22 if(s[i]+s[j]+s[i+j]+4==n)sum++; 23 } 24 printf("%d\n",sum); 25 return 0; 26 }