CodeForces 110C 【构造】

思路:
7越多越好,然后从7最多个数枚举过去,判断一下剩下的能不能用4解决就好了;

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;

int main()
{
    int m,n;
    scanf("%d",&n);

    int q=n/7;

    for(int i=q;i>=0;i--)
    {
        m=i*7;
        int x=n-m;
        if(x%4==0)
        {
            x/=4;
            for(int k=0;k<x;k++)
                printf("%d",4);
            for(int k=0;k<i;k++)
                printf("%d",7);
            return 0;
        }
    }
    puts("-1");
    return 0;
}


原文地址:https://www.cnblogs.com/keyboarder-zsq/p/6777359.html