0分求助
查看原帖
0分求助
1369972
shunxinruyi楼主2024/11/2 19:51
#include<bits/stdc++.h>
using namespace std;

int sticknum[10]={6,2,5,5,4,5,6,3,7,6},len;

void slove(int pos,int n)
{
	if(pos==0)return;
		int dx=0;
		if(len==pos)
		{
			dx=1;
		}
		for(int i=dx;i<10;i++)
			{
				if((n-sticknum[i])>=2*(pos-1)&&(n-sticknum[i])<=7*(pos-1))
				{
					cout<<i;
					slove(pos-1,n-sticknum[i]);
					break;
				}
			}
}
int main()
{
	int T,n;
	cin>>T;
	while(T--)
	{
		cin>>n;
		if(n<2) cout<<-1<<"\n";
		else if(n>=2&&n<=7)
		{
			for(int i=1;i<10;i++)
			{
				if(sticknum[i]==n)
				{
					cout<<i<<"\n";
					break;
				}
			}
		}
		else 
		{
			len=(n+6)/7;
			slove(len,n);
		}
	}
	return 0;
}
2024/11/2 19:51
加载中...