C-7-教417--签到题(枚举)

题目链接:http://acm.csust.edu.cn/problem/3025

Description

 

咚咚咚!在安静的7教417夜晚,车神带来了一堆神秘的数字。

417的小伙伴都只钟爱于包含4和7的数字。

例如数字:747,4,7747,4,7是他们钟爱的数字,而476,5,27476,5,27不是。

车神灵机一动,突然问:对于给定的数字n,能否找出各个数位上数字和为n的最小钟爱数字。

如果找到则输出这个最小数, 如果找不到,则输出“YingYingYing”。

Input

 

一行,一个整数n(1n1e6)代表要求车牌号的各个数位上数字的和

Output

 

输出仅一行,为满足条件的最小车牌号,如果不存在这个车牌号就输出“YingYingYing”。

Sample Input 1 

11

Sample Output 1

47

Sample Input 2 

10

Sample Output 2

YingYingYing


很简单地模拟一下即可,要求输出最小的数字,那么也就是说当7最多的时候该数字最小(长度短)。

我们直接n/7就可以知道最多可以放几个7了,然后往下筛选符合条件的,即扣掉x个7后的余值模4为0。最后把所有4放在前面,7放在后面。

以下是AC代码:

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

int main()
{
    int n;
    scanf ("%d",&n);
    int four,seven,mark=0;
    seven=n/7;
    for (int i=seven; i>=0; i--){
        if ((n-7*i)%4==0) {
            four=(n-7*i)/4;
            mark=1;
            seven=i;break;
        }
    }
    if (!mark) printf ("YingYingYing\n");
    else {
        for (int i=1; i<=four; i++)
            printf ("4");
        for (int i=1; i<=seven; i++)
            printf ("7");
        printf ("\n");
    }
    
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/lonely-wind-/p/12003710.html