虽然说我在考场上0分(忘换行了),但一加你谷上AC了?
上码:
#include<iostream>
using namespace std;
int g[10]={6,2,5,5,4,5,6,3,7,6};
int wei(int n){
return n/7+bool(n%7);
}
string ans="";
string DFS(int w,int now,int ts){
if(wei(now)>w || now<0 || now==0) return string("-1");
for(int i=ts;i<=9;i++){
if(now==g[i]){
char s=i+'0';
string a="";
a+=s;
return a;
}
string x=DFS(w-1,now-g[i],0);
if(x!="-1"){
char s=char(i+'0');
string a=s+x;
return a;
}
}
return string("-1");
}
int main(){
int T;
scanf("%d",&T);
while(T--){
int x;
scanf("%d",&x);
int w=wei(x);
cout<<DFS(w,x,1)<<endl;
}
}
不喜欢搞注释(勿喷)