写了一上午乱七八糟的东西
  • 板块灌水区
  • 楼主ljcnoi
  • 当前回复3
  • 已保存回复3
  • 发布时间2024/3/31 11:54
  • 上次更新2024/3/31 14:23:19
查看原帖
写了一上午乱七八糟的东西
1176197
ljcnoi楼主2024/3/31 11:54

有谁能看懂

#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;
}
2024/3/31 11:54
加载中...