P11229 题解
dongrunxuan · · 题解
前言
此题差点让我无法拿下普及组前三题。好在最后调出来了。谨以此题解记念我最后一次 CSP-J。
题意简述
给你
做法
本题分两个细节思考。首先是贪心,显然,由于数字
看到题解区大部分人都是使用余数进行分类讨论,其实大可不必。考场上我没想那么多,直接不断添
代码
放上赛后重构代码,码风丑,不喜勿喷。
#include<bits/stdc++.h>
using namespace std;
int T;
int n,ans;
int val[15]={6,2,5,5,4,5,6,3,7,6};
bool check(int x)
{
int res=0;
while(x)
{
res+=val[x%10];
x/=10;
}
return res==n;
}
int main()
{
//freopen("T3.in","r",stdin);
//freopen("zj.out","w",stdout);
cin>>T;
while(T--)
{
ans=0;
cin>>n;
if(n==1)
{
cout<<-1<<'\n';
continue;
}
while(n>25)
{
n-=7;
ans++;
}
for(int i=1;i<=1e6;i++)
{
if(check(i))
{
cout<<i;
break;
}
}
for(int i=1;i<=ans;i++)
{
cout<<8;
}
cout<<endl;
}
return 0;
}