60pts悬棺求调!
查看原帖
60pts悬棺求调!
1323415
wky_wsy_楼主2025/1/28 09:04
#include <bits/stdc++.h>
#define int long long
using namespace std;
int xt[10]={6,2,5,5,4,5,6,3,7,6};
int t,n;
inline void out8(int n){
	for(int i=1;i<=n;i++) putchar('8');
}
signed main(){
	scanf("%lld",&t);
	while(t--){
		scanf("%lld",&n);
		if(n==1){
			printf("-1\n");
		}
		else if(n<=7){
			for(int i=1;i<10;i++){
				if(xt[i]==n){
					printf("%lld\n",i);
					break;
				}
			}
		}
		else{
			int k=n%7;
			switch(k){
				case 0:{
					for(int i=0;i<n/7;i++) putchar('8');
					break;
				}
				case 1:{
					if(n==1){
						printf("-1");
					}else{
						printf("10");
						out8((n-8)/7);
					}
					break;
				}
				case 2:{
					putchar('1');
					out8((n-2)/7);
					break;
				}
				case 3:{
					if(n==3) putchar('7');
					else if(n==22) printf("22");
					else{
						printf("200");
						out8((n-17)/7);
					}
					break;
				}
				case 4:{
					if(n==4) putchar('4');
					else{
						printf("20");out8((n-11)/7);
					}
					break;
				}
				case 5:{
					putchar('5');
					out8((n-5)/7);
					break;
				}
				case 6:{
					putchar('6');
					out8((n-6)/7);
					break;
				}
				
			}
			puts("");
		}
	}
	return 0;
}
2025/1/28 09:04
加载中...