NC200436. 7-教417
描述
咚咚咚!在安静的7教417夜晚,车神带来了一堆神秘的数字。
而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')