卖火柴的lly
原题链接https://nuoyanli.com/contest/32/problem/F、
这道题的难点在于如何将火柴棍表示的数转化为火柴棍的个数,
在这里我们用数组储存的方法记录每个数代表所对应的的个数。
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<iostream>
#include<algorithm>
#include<stack>
#include<queue>
using namespace std;
long long a[10]= {6,2,5,5,4,5,6,3,7,6};//定义每个数所对应的的火柴数
long long add(long long t)
{
long long mm=0,s;
while(t/10>0)//t/10是为了保留第一位数
{
s=t%10;
mm+=a[s];//加上每一位数
t=t/10;
}
mm+=a[t];//把第一位数加上
return mm;
}
int main()
{
long long c,i,j,m,n,x,y,z;
scanf("%lld",&n);
long long sum=0;
for(i=0; i<=1111; i++)
{
for(j=0; j<=1111; j++)
{
c=i+j;//等式成立
x=add(i);
y=add(j);
z=add(c);
if(x+y+z==n-4)//判断火柴棍是否满足题意
{
sum++;
}
}
}
printf("%lld",sum);
return 0;
}