部分分喂得饱饱的(纯送分)
查看原帖
部分分喂得饱饱的(纯送分)
1033283
Sugar_Fate楼主2024/10/27 12:07

暴力枚举+特判=80pts
你说得对,但是我考场上没有想到正解,然后T2只剩30min了(什么开题顺序)

#include<bits/stdc++.h>
#define long long int
using namespace std;
int T;
bool flag;
int a[11]={6,2,5,5,4,5,6,3,7,6};
int getn(int n){
	int cnt=0;
	while(n){
		cnt+=a[n%10];
		n/=10;
	}
	return cnt;
}
signed main(){
	cin>>T;
	while(T--){
		int n;
		cin>>n;
		if(n<=50){
			if(n==1){
				cout<<-1<<endl;
			}else{
				for(int i=0;i<INT_MAX;i++){
					if(getn(i)==n){
						flag=true;
						cout<<i<<endl;
						break;
					}
				}
				if(!flag){
					cout<<-1<<endl;
				}
			}
		}else if(n%7==0){
			int k=0;
			k=n/7;
			for(int i=0;i<k;i++){
				cout<<8;
			}
			cout<<endl;
		}else if(n%7==1){
			int k=0;
			k=(n-1)/7-1;
			cout<<10;
			for(int i=0;i<k;i++){
				cout<<8;
			}
			cout<<endl;
		}else{
			for(int i=0;i<INT_MAX;i++){
				if(getn(i)==n){
					flag=true;
					cout<<i<<endl;
					break;
				}
			}
			if(!flag){
				cout<<-1<<endl;
			}			
		}
	}
	return 0;
}

什么爆炸时间复杂度

2024/10/27 12:07
加载中...