1 条题解

  • 0
    @ 2024-12-4 17:48:31

    一道找规律题。

    如果 n9n\le 9:打表。

    nn 答案
    11 1-1
    22 11
    33 77
    44
    55 22
    66
    77 88
    88 1010
    99 1818

    如果 n mod 7=0n\ \bold{mod}\ 7 = 0

    • 输出 n7\displaystyle \frac n 788
    • n/=7;
      while(n--) {
          cout<<8;
      }
      cout<<endl;
      

    如果 n mod 7=1n\ \bold{mod}\ 7 = 1

    • 先输出 1010,再输出 n71\displaystyle \frac n 7-188
    • else if(n%7==1) {
          cout<<10;
          for(int i=1;i<=n/7-1;i++) {
              cout<<8;
          }
          cout<<endl;
      

    如果 n mod 7=2n\ \bold{mod}\ 7 = 2

    • 先输出 11,再输出 n7\displaystyle \frac n 788
    • cout<<1;
      for(int i=1;i<=n/7;i++) {
          cout<<8;
      }
      cout<<endl;
      

    如果 n mod 7=3n\ \bold{mod}\ 7 = 3

    • 如果 n=10n=10,输出 2222
    • if(n==10) {
          cout<<22<<endl;
      }
      
    • 否则先输出 200200,再输出 n72\displaystyle \frac n 7-288
    • else {
          cout<<200;
          for(int i=1;i<=n/7-2;i++) {
            cout<<8;
          } 
          cout<<endl;
      }
      

    如果 n mod 7=4n\ \bold{mod}\ 7 = 4

    • 先输出 2020,再输出 n71\displaystyle \frac n 7-188
    • cout<<20;
      for(int i=1;i<=n/7-1;i++) {
          cout<<8;
      }
      cout<<endl;
      

    如果 n mod 7=5n\ \bold{mod}\ 7 = 5

    • 先输出 22,再输出 n7\displaystyle \frac n 788
    • cout<<2;
      for(int i=1;i<=n/7;i++) {
          cout<<8;
      }
      cout<<endl;
      

    如果 n mod 7=0n\ \bold{mod}\ 7 = 0

    • 先输出 66,再输出 n7\displaystyle \frac n 788
    • cout<<6;
      for(int i=1;i<=n/7;i++) {
          cout<<8;
      }
      cout<<endl;
      

    完整代码

    #include<bits/stdc++.h>
    using namespace std;
    int f(int i) {
    	if(i==1) return -1;
        if(i==2) return 1;
        if(i==3) return 7;
        if(i==4) return 4;
        if(i==5) return 2;
        if(i==6) return 6;
        if(i==7) return 8;
        if(i==8) return 10;
        if(i==9) return 18;
    }
    int main() {
    	int T;
    	cin>>T;
    	while(T--) {
    		int n;
    		cin>>n;
    		if(n<=9) {
    			cout<<f(n)<<endl;
    		}
    		else if(n%7==0) {
    			n/=7;
                while(n--) {
                    cout<<8;
                }
                cout<<endl;
    		}
    		else if(n%7==1) {
    			cout<<10;
                for(int i=1;i<=n/7-1;i++) {
                    cout<<8;
                }
                cout<<endl;
    		}
    		else if(n%7==2) {
    			cout<<1;
    			for(int i=1;i<=n/7;i++) {
    				cout<<8;
    			}
    			cout<<endl;
    		}
    		else if(n%7==3) {
    			if(n==10) {
    				cout<<22<<endl;
    			}
    			else {
    				cout<<200;
    				for(int i=1;i<=n/7-2;i++) {
    					cout<<8;
    				} 
    				cout<<endl;
    			}
    		}
    		else if(n%7==4) {
    			cout<<20;
    			for(int i=1;i<=n/7-1;i++) {
    				cout<<8;
    			}
    			cout<<endl;
    		}
    		else if(n%7==5) {
    			cout<<2;
    			for(int i=1;i<=n/7;i++) {
    				cout<<8;
    			}
    			cout<<endl;
    		}
    		else if(n%7==6) {
    			cout<<6;
    			for(int i=1;i<=n/7;i++) {
    				cout<<8;
    			}
    			cout<<endl;
    		}
    	}
    	return 0;
    }
    
    • 1

    信息

    ID
    35107
    时间
    1000ms
    内存
    512MiB
    难度
    3
    标签
    递交数
    5
    已通过
    4
    上传者