一上来就觉得这是一道找规律的题,以模七的值来找规律,赛时没注意到模四时大的是200。
代码:
#include<bits/stdc++.h> using namespace std; long long t; int main(){ freopen("sticks.in","r",stdin); freopen("sticks.out","w",stdout); scanf("%lld",&t); while(t--){ long long n; scanf("%lld",&n); if(n<=1){ printf("-1\n"); continue; } if(n%7==0){ for(int i=1;i<=n/7;i++)printf("8"); printf("\n"); }else if(n%7==1){ printf("10"); n-=8; while(n){ printf("8"); n-=7; } printf("\n"); }else if(n%7==2){ if(n==2)printf("1\n"); else{ printf("1"); n-=2; while(n){ printf("8"); n-=7; } printf("\n"); } }else if(n%7==3){ if(n==3)printf("7\n"); else if(n==10)printf("22\n"); else{ printf("200"); n-=17; for(int i=1;i<=n/7;i++)printf("8"); printf("\n"); } }else if(n%7==4){ if(n==4)printf("4\n"); else{ printf("20"); n-=10; for(int i=1;i<=n/7;i++)printf("8"); printf("\n"); } }else if(n%7==5){ printf("2"); n-=5; for(int i=1;i<=n/7;i++)printf("8"); printf("\n"); }else{ printf("6"); n-=6; for(int i=1;i<=n/7;i++)printf("8"); printf("\n"); } } return 0; }
CSP-J2024年T3题解
于 2024-11-24 17:41:09 首次发布