"新生赛"长沙理工大学程序设计竞赛(重现赛)C 7-教417

题目链接:https://ac.nowcoder.com/acm/contest/3530/C

题目描述
咚咚咚!在安静的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

题意就是一个数只由4和7构成,现在给出一个n,要让这个数每一位相加得到的和等于n,问是否存在这个数,并且要让这个数尽可能的小。

思路:首先这个数只有4和7,如果要让这个数尽可能的小,根据贪心,就需要让7出现的尽可能多(因为7出现的多就可以减少这个数的位数),所以可以枚举7出现的次数,然后n减去7乘以它出现的次数,就是4出现次数的总和,然后判断此时能否被4整除,最后求出能满足情况的7出现的最多次数。输出的话只需要让4全部在前面,7全部在后面就好了。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
#include<queue>
#include<stack>
using namespace std;
const int N=1000100;
#define ll long long
#define mod 1000000007


int main() {
	int n;
	cin>>n;
	int a=0,b=0;
	for(int i=0;i<=n;i++)
	{
		if(i*7>n) break;
		if((n-i*7)%4==0)
		{
			a=i;
			b=(n-i*7)/4;
		}
	}
	if(a==0&&b==0) cout<<"YingYingYing"<<endl;
	else
	{
		for(int i=0;i<b;i++)
		cout<<"4";
		for(int i=0;i<a;i++)
		cout<<"7";
		cout<<"\n";
	}
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本火锅店点餐系统采用Java语言和Vue技术,框架采用SSM,搭配Mysql数据库,运行在Idea里,采用小程序模式。本火锅店点餐系统提供管员、用户两种角色的服务。总的功能包括菜品的查询、菜品的购买、餐桌预定和订单管。本系统可以帮助管员更新菜品信息和管订单信息,帮助用户实现在线的点餐方式,并可以实现餐桌预定。本系统采用成熟技术开发可以完成点餐管的相关作。 本系统的功能围绕用户、管员两种权限设计。根据不同权限的不同需求设计出更符合用户要求的功能。本系统中管员主要负责审核管用户,发布分享新的菜品,审核用户的订餐信息和餐桌预定信息等,用户可以对需要的菜品进行购买、预定餐桌等。用户可以管个人资料、查询菜品、在线点餐和预定餐桌、管订单等,用户的个人资料是由管员添加用户资料时产生,用户的订单内容由用户在购买菜品时产生,用户预定信息由用户在预定餐桌操作时产生。 本系统的功能设计为管员、用户两部分。管员为菜品管、菜品分类管、用户管、订单管等,用户的功能为查询菜品,在线点餐、预定餐桌、管个人信息等。 管员负责用户信息的删除和管,用户的姓名和手机号都可以由管员在此功能里看到。管员可以对菜品的信息进行管、审核。本功能可以实现菜品的定时更新和审核管。本功能包括查询餐桌,也可以发布新的餐桌信息。管员可以查询已预定的餐桌,并进行审核。管员可以管公告和系统的轮播图,可以安排活动。管员可以对个人的资料进行修改和管,管员还可以在本功能里修改密码。管员可以查询用户的订单,并完成菜品的安排。 当用户登录进系统后可以修改自己的资料,可以使自己信息的保持正确性。还可以修改密码。用户可以浏览所有的菜品,可以查看详细的菜品内容,也可以进行菜品的点餐。在本功能里用户可以进行点餐。用户可以浏览没有预定出去的餐桌,选择合适的餐桌可以进行预定。用户可以管购物车里的菜品。用户可以管自己的订单,在订单管界面里也可以进行查询操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值