求助!!!
查看原帖
求助!!!
1349739
linrun0504楼主2024/10/26 17:41

不要打表!!!

#include<bits/stdc++.h>
using namespace std;
int st[11]={6,2,5,5,4,5,6,3,7,6};
string ans[11];
bool cmp(string a,string b){
	if(a.size()!=b.size()){
		return a.size()<b.size();
	}
	for(int i=0;;i++){
		if(a[i]!=b[i]){
			return a[i]<b[i];
		}
	}
}
int main(){
	int T;
	cin>>T;
	while(T--){
		int n;
		cin>>n;
		if(n<=1){
			cout<<"-1\n";
			continue;
		}
		else if(n<=7){
			for(int i=1;i<=9;i++){
				if(n==st[i]){
					cout<<i<<"\n";
					break;
				}
			}
			continue;
		}
		else{
			for(int i=1;i<=9;i++){
				int cn=n;
				cn-=st[i];
				ans[i]+=i+'0';
				while(cn>7){
					cn-=6;
					ans[i]+='0';
				}
				if(cn<=1){
					ans[i]+='0';
					continue;
				}
				for(int j=0;j<=9;j++){
					if(cn==st[j]){
						ans[i]+=j+'0';
						break;
					}
				}
			}
			sort(ans+1,ans+9,cmp);
			cout<<ans[1]<<"\n";
		}
		for(int i=1;i<=9;i++){
			ans[i]="";
		}
	}
	return 0;
}
2024/10/26 17:41
加载中...