有谁能看懂
#include<bits/stdc++.h>
using namespace std;
long long int h[20]={6,2,5,5,4,5,6,3,7,6},ii[50000],jj[50000],kk[50000];
long long int sum,xj;
int fi(int x,int cnm)
{
if(cnm==1)
{
sum=0;xj=0;
for(int i=0;i<=9;i++)
{
if(i==0)
{
if(x==6)
{
xj++;
ii[xj]=0;
}
continue;
}
if(h[i]<=x)
{
sum=sum*10+h[i];
if(x-h[i]<=1)
{
xj++;
ii[xj]=sum;
}
else
{
fi(x-h[i],2);
}
sum=sum/10;
}
}
return xj;
}
else
{
for(int i=0;i<=9;i++)
{
if(h[i]<=x)
{
sum=sum*10+h[i];
if(x-h[i]<=1)
{
xj++;
ii[xj]=sum;
}
else
{
fi(x-h[i],2);
}
sum=sum/10;
}
}
return xj;
}
}
int fj(int x,int cnm)
{
if(cnm==1)
{
sum=0;xj=0;
for(int i=0;i<=9;i++)
{
if(i==0)
{
if(x==6)
{
xj++;
jj[xj]=0;
}
continue;
}
if(h[i]<=x)
{
sum=sum*10+h[i];
if(x-h[i]<=1)
{
xj++;
jj[xj]=sum;
}
else
{
fj(x-h[i],2);
}
sum=sum/10;
}
}
return xj;
}
else
{
for(int i=0;i<=9;i++)
{
if(h[i]<=x)
{
sum=sum*10+h[i];
if(x-h[i]<=1)
{
xj++;
jj[xj]=sum;
}
else
{
fj(x-h[i],2);
}
sum=sum/10;
}
}
return xj;
}
}
int fk(int x,int cnm)
{
if(cnm==1)
{
sum=0;xj=0;
for(int i=0;i<=9;i++)
{
if(i==0)
{
if(x==6)
{
xj++;
kk[xj]=0;
}
continue;
}
if(h[i]<=x)
{
sum=sum*10+h[i];
if(x-h[i]<=1)
{
xj++;
kk[xj]=sum;
}
else
{
fk(x-h[i],2);
}
sum=sum/10;
}
}
return xj;
}
else
{
for(int i=0;i<=9;i++)
{
if(h[i]<=x)
{
sum=sum*10+h[i];
if(x-h[i]<=1)
{
xj++;
kk[xj]=sum;
}
else
{
fk(x-h[i],2);
}
sum=sum/10;
}
}
return xj;
}
}
int main()
{
long long int n,tot=0;
cin>>n;
n=n-4;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
for(int k=1;k<=n;k++)
{
if(i+j+k!=n)
{
break;
}
else
{
int as=fi(i,1),bs=fj(j,1),cs=fk(k,1);
for(int g=1;g<=as;g++)
{
cout<<ii[g]<<endl;
for(int h=1;h<=bs;h++)
{
cout<<jj[h]<<endl;
for(int q=1;q<=cs;q++)
{
cout<<kk[q]<<endl<<endl;
if(ii[g]+jj[h]==kk[q])
{
tot++;
}
}
}
}
}
}
}
}
cout<<tot<<endl;
return 0;
}