文章目录

  • 题目
  • 思路
  • AC代码
  • 关于cin与scanf的输入问题

题目

思路

就不断模拟就好了。用一个map存每个字符对应的个数。对于输入的字符串按照长度来区分两种情况,因为当长度为5的时候比较复杂。当长度小于5的时候,就遍历map就好了,个数大于等于这个长度就逐个输出就好了;当长度为5的时候,我是通过字符串转化函数to_string与stoi来对字符串不断+11111看它们在map中的个数是否大于0,并用一个num变量来判断正确数字个数,如果num恰好等于5那么就可以输出了。

AC代码

人越菜 if-else越多

#include <bits/stdc++.h>
using namespace std;
string s;map<char, int> m = {{'1', 0},{'2', 0},{'3', 0},{'4', 0},{'5', 0},{'6', 0},{'7', 0},{'8', 0},{'9', 0},
};//初始化一个map
int main() {getline(cin, s);int len = s.size();for (int i = 0; i < len; ++i) {m[s[i]] += 1;}string s1;map<char, int>::iterator it;bool flag = false;int num;while (cin >> s1) { //这样使用是被允许的 cin与scanf均有返回值flag = false;num = 0;int len1 = s1.size();if (len1 < 5) {char c = s1[0];for (it = m.begin(); it != m.end(); ++it) {if (it->first > c && it->second >= len1) { //字典序比c大并且个数与len1相等 则可以输出num += 1;//用来记录位数flag = true;if (num == 1 && flag) { //只能第一个输入cout << "YES ";}for (int i = 0; i < len1; ++i) {cout << it->first;}cout << " ";}}} else {//为5张牌的时候char c = s1[4]; //最后一位if (c == '9')//最后一张是9就不用比了是最大的牌flag = false;else {c = s1[0];string new_s = s1;int sum_ = 0;for (c; c <= '5'; ++c) {num = 0;new_s = to_string(stoi(new_s) + 11111); //+11111转化为新的字符串for (it = m.begin(); it != m.end(); ++it) {for (int i = 0; i < 5; ++i) {if (it->first == new_s[i] && it->second > 0) {num += 1;//num用来记录正确的位数}}}if (num == 5) { //如果是5那就对了flag = true;}if (sum_ == 0 && flag) {cout << "YES ";}if (num == 5) {cout << new_s << " ";sum_ += 1;}}}}if (!flag)cout << "NO";cout << endl;}
}

关于cin与scanf的输入问题

scanf是C语言中的标准输入语法,它是有返回值的,依据情况而定,输入几个数就返回几,当遇见文件末尾的时候,此时并没有输入的数,所以会返回0。在while循环中,0就会被视为是假,所以不会再执行下去了。

#include <bits/stdc++.h>
using namespace std;
int main(){int a,b;cout<<scanf("%d %d",&a,&b);
}

cin则不同,它是没有返回值的。下列语句是会报错的,换句话来说,cin是没有返回值的,那为什么我们会看到while(cin…){…}的语句呢?
首先cin是流儿输入,也就是说,当有输入对象时,而且是正确的对象时(比如说定义了a时int类型输入的就是int类型)cin会将其放入缓存区,这就是有效流;但是对于不正确的对象(输入的时double char类型或者无输入)cin就不会放入缓存区,那么就是无效流对象。也就会返回false。

#include <bits/stdc++.h>
using namespace std;
int main(){int a,b;cout<<(cin>>a>>b);//报错
}

hun 暑期实训之打牌 cin与scanf的输入相关推荐

  1. hun暑期实训 最大报销额(01背包) 关于动态内存分配的new与delete

    文章目录 题目 思路 AC代码1 AC代码2 new与delete 题目 思路 这个题主的难点要有三个方面. 第一个方面是数据不好输入.题目中所给的数据都是做题需要的数据,而且是需要分开存储的.对于字 ...

  2. 【百家稷学】深度学习计算机视觉生产实习(山西农业大学暑期实训)

    继续咱们百家稷学专题,本次是有三AI在山西农业大学开设的为期10天的正式暑期专业课程.百家稷学专题的目标,是走进100所高校和企业进行学习与分享. 本次主题 本次实训是在山西农业大学进行,主题是< ...

  3. 暑期实训总结_李小倩

    暑期实训总结 姓名:李小倩  学号:111307105 班级:CSDN-java班 年级:2011级 转眼间实训已经结束有些时间了,我想这个实训对于我们参与的每一个人来说都是一段美好快乐的记忆.记得距 ...

  4. 暑期实训心得及总结_史国旭

    暑期实训心得及总结                     姓名:史国旭  学号:111307168 班级:CSDN-java 年级:2011级 转眼间实训已经结束4天了,我想这个实训对于我们参与的每 ...

  5. 计算机暑期实训报告,计算机专业暑期实训报告总结范文

    <计算机专业暑期实训报告总结范文>由会员分享,可在线阅读,更多相关<计算机专业暑期实训报告总结范文(4页珍藏版)>请在人人文库网上搜索. 1.计算机专业暑期实训报告总结范文 计 ...

  6. 山东大学暑期实训-饮食健康管理系统设计与实现(一)

    山东大学暑期实训-饮食健康管理系统设计与实现(一) 环境配置篇(一) python环境配置 环境配置篇(一) python环境配置 使用Anaconda配置python环境,Python环境选择3.8 ...

  7. 暑期实训21组第一周个人工作总结

    2022.6.21 参加暑期实训开题会议 下午13:30,参加由队长主持的队内的第一次全体线上会议,主要明确项目的内容.要点.技术.人员.分工等问题: 下午15:00,参加由英特尔的指导老师主持的答疑 ...

  8. 暑期实训第二周周一周二总结

    一.总结 时间飞逝,暑期项目实训转眼来到了第二周.在完成了第一周的需求分析.系统设计.技术学习等阶段后,我们项目组终于进入了编码开发的阶段. 经过分工,我的工作是小程序后端的开发.周一周二两天完成了三 ...

  9. 图像识别_2010暑期实训有感【二】

    还是好好谈谈项目方面的吧.我们一个小组12人,算是人数比较多的了.这个项目还是比较大的,而且时间比较紧,总共20天,中间每周日休息,所以剩下的也就不足20天时间了.况且前期还有培训,会耽误一些时间.所 ...

最新文章

  1. 【Go】Go基础(四):流程控制(控制结构)
  2. Spring-AOP 使用@AspectJ
  3. 卷积神经网络训练的三个概念(Epoch,Batch,Iteration)
  4. 彻底扔掉PostMan了,这套国产替代方案是真的香…
  5. Intel Skylake (Client) 架构/微架构/流水线 (5) - PAUSE指令时延
  6. 产品经理学习---好产品需要用户有感知
  7. ubuntu mysql数据储存在哪里_如何更改在Ubuntu下的MySQL数据库存储位置?
  8. 《浪潮之巅》读书笔记——第6章 Microsoft
  9. 无法创建新虚拟机: 无法打开配置文件“E:\vmware\Windows7.vmx”: 拒绝访问。
  10. 【语音合成】基于matlab语音信号变速【含Matlab源码 565期】
  11. 《数据挖掘:理论与算法》习题 + 期末考试+答案 + 2021年【完整/完结】
  12. 【操作系统】Ubuntu 16 编译链接 .cpp 和 .asm 文件
  13. 什么情况下使用10分钟邮箱?8个临时邮箱推荐
  14. 【备读学术论文总览】研究方向论文清单
  15. Caused by: org.springframework.web.client.RestClientException: Error while extracting response for t
  16. 简单而直接的Python web 框架:web.py
  17. 虚拟机安装CentOS7教程
  18. 深入学习JVM探针与字节码技术
  19. html5关于校庆作品名称,校庆征集令 | 桃李春风六十载 我们等你一起来
  20. 硅谷之所以骨子里与众不同,是因为有这七件事

热门文章

  1. C#的委托(delegate、Action、Func、predicate)
  2. Audio Session Programming Guide
  3. 转:Page.ClientScript.RegisterStartupScript(me.GetType(),script1,scriptalert('111');/script)...
  4. case when..then
  5. jeesite 去掉 /a
  6. Vim-latex 插件 的安装
  7. eclipse创建maven
  8. mybatis的拦截器及分页机制
  9. group_concat 排序并取前三个
  10. 02.规划过程组表格-需求跟踪矩阵