类抽屉问题的C++解决
问题如下
A、B、C、D、E五名学生有可能参加计算机竞赛,根据下列条件判断哪些
人参加了竞赛:
(1)A参加时,B也参加;
(2)B和C只有一个人参加;
(3)C和D或者都参加,或者都不参加;
(4)D和E中至少有一个人参加;
(5)如果E参加,那么A和D也都参加。
这种应该是抽屉问题吧,呵呵,小学时数学竞赛好像看过,不知道术语对不对。。用代码实现。
遗留一个问题点就是程序里用的那几个for循环,看着太多了,很不舒服,可一时也不知道怎么处理。。
- //example 1-1
- #include <iostream>
- using namespace std;
- //enum persion{A,B,C,D,E};
- bool checkuser(bool a,
- bool b,
- bool c,
- bool d,
- bool e)
- {
- //when a go,so do b
- if(a)
- {
- if(!b)
- {
- return false;
- }
- }
- //between b and c , only one can go
- if(b && c){return false;}
- //c and d,their go together
- if(c != d){return false;}
- //d and e,one should go at least
- if(!d || e){return false;}
- //if e go,a and d alse go
- if (e)
- {
- if (!a && d)
- {
- return false;
- }
- }
- return true;
- }
- void output(bool a,
- bool b,
- bool c,
- bool d,
- bool e)
- {
- a?cout<<"A参加します"<<endl:cout<<"A参加していません"<<endl;
- b?cout<<"B参加します"<<endl:cout<<"B参加していません"<<endl;
- c?cout<<"C参加します"<<endl:cout<<"C参加していません"<<endl;
- d?cout<<"D参加します"<<endl:cout<<"D参加していません"<<endl;
- e?cout<<"E参加します"<<endl:cout<<"E参加していません"<<endl;
- }
- int main()
- {
- for(int aa = 0; aa < 2; aa++)
- {
- for(int bb = 0; bb <=1; bb++)
- {
- for(int cc = 0; cc <=1; cc++)
- {
- for(int dd = 0; dd <=1; dd++)
- {
- for(int ee = 0; ee <=1; ee++)
- {
- bool a = (aa == 1)?true:false;
- bool b = (bb == 1)?true:false;
- bool c = (cc == 1)?true:false;
- bool d = (dd == 1)?true:false;
- bool e = (ee == 1)?true:false;
- if(checkuser(a, b, c ,d ,e))
- {
- output(a, b, c ,d ,e);
- }
- }
- }
- }
- }
- }
- system("pause");
- return 0;
- }
类抽屉问题的C++解决相关推荐
- 多线程下ArrayList类线程不安全的解决方法及原理
多线程下ArrayList类线程不安全的解决方法及原理 参考文章: (1)多线程下ArrayList类线程不安全的解决方法及原理 (2)https://www.cnblogs.com/fangting ...
- IDEA——找不到或无法加载主类的一种暴力解决方法
IDEA--找不到或无法加载主类的一种暴力解决方法 参考文章: (1)IDEA--找不到或无法加载主类的一种暴力解决方法 (2)https://www.cnblogs.com/jsjliyang/p/ ...
- 【MyBatis】sql列名与实体类属性名不同的解决方式
sql列名与Java实体类属性名不同的解决方式 例如: 数据库 CREATE TABLE orders(order_id INT PRIMARY KEY AUTO_INCREMENT,order_no ...
- idea类存在找不到解决办法
idea类存在找不到解决办法 996的程序猿 2019-01-09 13:23:07 51954 收藏 101 分类专栏: 工具类 文章标签: idea 找不到类 idea 找不到符号 版权 1.刷新 ...
- Python 自定义类中NameError错误的解决
Python 自定义类中NameError错误的解决 自定义类之后,python中常常有莫名其妙的NameError提示出错.经尝试后发现,在修改类代码并保存之后,光重新import类是不够的,需要重 ...
- spring boot启动类启动 错误: 找不到或无法加载主类 xxx.xxxx.Application 的解决方法
spring boot启动类启动 错误: 找不到或无法加载主类 xxx.xxxx.Application 的解决方法 导入的一个外部的spring boot项目,运行启动类,忽然提示找不到或者无法加载 ...
- [转载] Maven类包冲突终极三大解决技巧 mvn dependency:tree
举例 A依赖于B及C,而B又依赖于X.Y,而C依赖于X.M,则A除引B及C的依赖包下,还会引入X,Y,M的依赖包(一般情况下了,Maven可通过<scope>等若干种方式控制传递依赖). ...
- eclipse集成tomcat运行web时提示引入jar包的类找不到的解决办法
在eclipse集成tomcat开发web时,java类引入的jar包,编译通过,但启动tomcat运行web时提示找不到jar包内的类,需要作如下配置,将jar包在部署到集成的tomcat环境中. ...
- java类注入service为null_解决webservice(Java)中dao层注入为null问题
首先在webservice指定发布的路径类中实现 ServletContextListener, 例如: import javax.servlet.ServletContextEvent; impor ...
- OpenFileDialog 类的ShowDialog() 错误的解决
首先,一个类里,有个linkLabel1 private OpenFileDialog openFileDialog1; private DialogResult result; private vo ...
最新文章
- 软件缘-网友个人精心打造的精品软件收集
- AndroidStudio中Attatch debugger to Android Ptocess时 Choose Process后OK是灰色的
- OpenCV C++ 07 - Histogram Equalization of a Color image with OpenCV
- debian安装flash插件
- 【APICloud系列|13】移动端适配通揽
- php 二进制权限,基于二进制位的权限控制(数据库里的二进制)
- tgc 什么意思 tgt_TGT的完整形式是什么?
- android 跳转动画黑屏,Android8.0 适配解决页面跳转过程出现短暂黑屏的问题
- ECCV 2020,一种灵活高效的权重生成网络框架
- Mac OSX使用隐藏文件夹
- linux引导分区被格式化修复,/boot分区、fstab文件、/bin/mount一次性被误除修复方法...
- 在百度搜索引擎做网络推广怎么做,竞价推广成本和效果怎样?
- jQuery窗口调整大小
- Python——付费/版权歌曲下载
- ICMP协议和ping命令
- 新能源汽车,不需要“共享充电宝”
- 美颜相机android版,美颜相机手机版
- NetSpectre:通过网络读取任意内存
- 微信小程序setData不起作用
- 自由谈:为什么使用 Linux
热门文章
- css用网络图片做背景图片,网络编程css为图片设置背景图片
- java中国象棋棋子走法,中国象棋的规则及各种棋子的走法介绍
- 【洛谷P1069 细胞分裂】
- Win10微软输入法不见了
- 【GPU精粹与Shader编程】(二) 《GPU Gems 1》全书核心内容提炼总结 · 上篇
- 伽罗华有限域_有限域 伽罗瓦域
- 计算机在学前教育中作用论文,学前教育论文
- 褚时健:年轻人不老想着背靠大树好乘凉
- 简要分析VB6.0和VB.NET区别
- 上周热点回顾(8.18-8.24)