P1149 火柴棒等式
程序员文章站
2022-05-22 08:22:54
...
思路
由于最多一共24根火柴,单个数字最大不大于1000,相加最大不超过2000。所以第一步先求出0到2000每个数字所要用的火柴数。第二步用两层for循环满足b[i]+b[j]+b[i+j]==n-4,即为所求。
AC CODE
#include<bits/stdc++.h>
using namespace std;
int n,a[100],b[10000],ans=0;
int main()
{
cin>>n;
a[0]=6;a[1]=2;a[2]=5;a[3]=5;a[4]=4;
a[5]=5;a[6]=6;a[7]=3;a[8]=7;a[9]=6;
b[0]=6;
for(int i=1;i<=2000;i++)
{
int j=i;
while(j)
{
b[i]=b[i]+a[j%10];
j=j/10;
}
}
for(int i=0;i<=1000;i++)
{
for(int j=0;j<=1000;j++)
{
if(b[i]+b[j]+b[i+j]==n-4) ans++;
}
}
printf("%d\n",ans);
return 0;
}
上一篇: ACM_PKU_1001
下一篇: redis-cluster集群搭建