Codeforces 1295A Display The Number(思维)

传送门

题意:

在这里插入图片描述
如图,要想让0亮需要6段,让1亮需要2段,让2亮需要5段......让7亮需要3段......
出一个整数n,表示可以亮的段数,问能显示出来最大的值为多少

思路:

位数越多肯定表示的数越大,可以看出结论,如果n为偶数,那么输出n/2位个1,如果n位奇数,输出一个7,然后输出(n-3)/2个1

代码:

#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <string.h>
#include <vector>
#include <math.h>
#include <map>
#include <queue>
#include <set>
using namespace std;
typedef long long ll;
const int maxn=2e5+50;
int main()
{
    int t,n;
    scanf("%d",&t);
    while(t--){
       scanf("%d",&n);
       if(n%2==0){
           int ans=n/2;
           while(ans--){
               printf("1");
           }
           printf("
");
       }
       else {
           int ans=(n-3)/2;
           printf("7");
           //cout<<ans<<endl;
           while(ans--){
               printf("1");
           }
           printf("
");
       }

    }
    return 0;
}
原文地址:https://www.cnblogs.com/zzl_Alexander/p/12250626.html