列表

详情


NC200436. 7-教417

描述

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

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

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

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

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

输入描述

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

输出描述

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

示例1

输入:

11

输出:

47

示例2

输入:

10

输出:

YingYingYing

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++11(clang++ 3.9) 解法, 执行用时: 14ms, 内存消耗: 608K, 提交时间: 2019-12-19 20:16:02

#include<bits/stdc++.h>
#define rep(i,s,e) for(int i=s; i<e; ++i)
using namespace std;
int main(){
	int n; cin>>n; rep(i,0,n/4+1){
		int t=n-4*i; if(!(t%7)){
			rep(j,0,i) putchar('4');
			rep(j,0,t/7) putchar('7');
			return putchar('\n'),0;
		}
	} puts("YingYingYing");
}

C(clang 3.9) 解法, 执行用时: 5ms, 内存消耗: 544K, 提交时间: 2019-12-16 21:58:13

#include<stdio.h>
int main()
{
	int i,n;
	scanf("%d",&n);
	for(i=0;i<=n/4;i++)
	{
		int t=n-i*4;
		if(t%7==0)
		{
			int j;
			for(j=1;j<=i;j++)
			printf("4");
			for(j=1;j<=t/7;j++)
			printf("7");
			return 0;
		}
	}
    printf("YingYingYing");
	return 0;
}

Python3(3.5.2) 解法, 执行用时: 72ms, 内存消耗: 3780K, 提交时间: 2019-12-16 16:19:57

n=int(input())
a=n//7
while a >= 0:
    if (n - 7 * a) % 4 == 0:
        print('4' * ((n - 7 * a) // 4) + '7' * a)
        exit()
    a -= 1
print('YingYingYing')

上一题