洛谷P_1149_火柴棒等式

PS:这道题可以把0~9所需要的火柴棒数用数组记下来,如s[0]=6,OVO

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

注意:

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

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

  3. 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 }

猜你喜欢

转载自www.cnblogs.com/single-R/p/9905836.html
今日推荐