打表最权威的一集
2025-08-25 13:24:02
发布于:辽宁
81阅读
0回复
0点赞
核心思路就是打表求最优
#include <bits/stdc++.h>
using namespace std;
int main(){
int t;
cin>>t;
while(t--){
int n;
cin>>n;
if(n%7==0) for(int i=1;i<=n/7;i++) cout<<8;
else if(n%7==1){
if(n==1) cout<<-1;
else{
cout<<10;
for(int i=1;i<=(n-8)/7;i++) cout<<8;
}
}
else if(n%7==2){
cout<<1;
for(int i=1;i<=(n-2)/7;i++) cout<<8;
}
else if(n%7==3){
if(n==3) cout<<7;
else if(n==10) cout<<22;
else{
cout<<200;
for(int i=1;i<=(n-17)/7;i++) cout<<8;
}
}
else if(n%7==4){
if(n==4) cout<<4;
else{
cout<<20;
for(int i=1;i<=(n-11)/7;i++) cout<<8;
}
}
else if(n%7==5){
cout<<2;
for(int i=1;i<=(n-5)/7;i++) cout<<8;
}
else{
cout<<6;
for(int i=1;i<=(n-6)/7;i++) cout<<8;
}
cout<<endl;
}
return 0;
}
全部评论 2
#include<bits/stdc++.h> using namespace std; int n,t,f[22]={0,-1,1,7,4,2,6,8,10,18,22,20,28,68,88,108,188,200,208,288,688,888}; int main(){ cin>>t; while(t--){ cin>>n; if (n<=21) cout<<f[n]<<"\n"; else{ int k=ceil(1.0*(n-21)/7); cout<<f[n-k*7]; while(k--) putchar('8'); cout<<"\n"; } } return 0; }2026-07-18 来自 广东
1打表在这
2026-07-18 来自 广东
0









有帮助,赞一个