问题如下
  A、B、C、D、E五名学生有可能参加计算机竞赛,根据下列条件判断哪些
  人参加了竞赛:
   (1)A参加时,B也参加;
   (2)B和C只有一个人参加;
   (3)C和D或者都参加,或者都不参加;
   (4)D和E中至少有一个人参加;
   (5)如果E参加,那么A和D也都参加。

这种应该是抽屉问题吧,呵呵,小学时数学竞赛好像看过,不知道术语对不对。。用代码实现。
遗留一个问题点就是程序里用的那几个for循环,看着太多了,很不舒服,可一时也不知道怎么处理。。

  1. //example 1-1
  2. #include <iostream>
  3. using namespace std;
  4. //enum persion{A,B,C,D,E};
  5. bool checkuser(bool a,
  6. bool b,
  7. bool c,
  8. bool d,
  9. bool e)
  10. {
  11. //when a  go,so do b
  12. if(a)
  13. {
  14. if(!b)
  15. {
  16. return false;
  17. }
  18. }
  19. //between b and c , only one can go
  20. if(b && c){return false;}
  21. //c and d,their go together
  22. if(c != d){return false;}
  23. //d and e,one should go at least
  24. if(!d || e){return false;}
  25. //if e go,a and d alse go
  26. if (e)
  27. {
  28. if (!a && d)
  29. {
  30. return false;
  31. }
  32. }
  33. return true;
  34. }
  35. void output(bool a,
  36. bool b,
  37. bool c,
  38. bool d,
  39. bool e)
  40. {
  41. a?cout<<"A参加します"<<endl:cout<<"A参加していません"<<endl;
  42. b?cout<<"B参加します"<<endl:cout<<"B参加していません"<<endl;
  43. c?cout<<"C参加します"<<endl:cout<<"C参加していません"<<endl;
  44. d?cout<<"D参加します"<<endl:cout<<"D参加していません"<<endl;
  45. e?cout<<"E参加します"<<endl:cout<<"E参加していません"<<endl;
  46. }
  47. int main()
  48. {
  49. for(int aa = 0; aa < 2; aa++)
  50. {
  51. for(int bb = 0; bb <=1; bb++)
  52. {
  53. for(int cc = 0; cc <=1; cc++)
  54. {
  55. for(int dd = 0; dd <=1; dd++)
  56. {
  57. for(int ee = 0; ee <=1; ee++)
  58. {
  59. bool a = (aa == 1)?true:false;
  60. bool b = (bb == 1)?true:false;
  61. bool c = (cc == 1)?true:false;
  62. bool d = (dd == 1)?true:false;
  63. bool e = (ee == 1)?true:false;
  64. if(checkuser(a, b, c ,d ,e))
  65. {
  66. output(a, b, c ,d ,e);
  67. }
  68. }
  69. }
  70. }
  71. }
  72. }
  73. system("pause");
  74. return 0;
  75. }

类抽屉问题的C++解决相关推荐

  1. 多线程下ArrayList类线程不安全的解决方法及原理

    多线程下ArrayList类线程不安全的解决方法及原理 参考文章: (1)多线程下ArrayList类线程不安全的解决方法及原理 (2)https://www.cnblogs.com/fangting ...

  2. IDEA——找不到或无法加载主类的一种暴力解决方法

    IDEA--找不到或无法加载主类的一种暴力解决方法 参考文章: (1)IDEA--找不到或无法加载主类的一种暴力解决方法 (2)https://www.cnblogs.com/jsjliyang/p/ ...

  3. 【MyBatis】sql列名与实体类属性名不同的解决方式

    sql列名与Java实体类属性名不同的解决方式 例如: 数据库 CREATE TABLE orders(order_id INT PRIMARY KEY AUTO_INCREMENT,order_no ...

  4. idea类存在找不到解决办法

    idea类存在找不到解决办法 996的程序猿 2019-01-09 13:23:07 51954 收藏 101 分类专栏: 工具类 文章标签: idea 找不到类 idea 找不到符号 版权 1.刷新 ...

  5. Python 自定义类中NameError错误的解决

    Python 自定义类中NameError错误的解决 自定义类之后,python中常常有莫名其妙的NameError提示出错.经尝试后发现,在修改类代码并保存之后,光重新import类是不够的,需要重 ...

  6. spring boot启动类启动 错误: 找不到或无法加载主类 xxx.xxxx.Application 的解决方法

    spring boot启动类启动 错误: 找不到或无法加载主类 xxx.xxxx.Application 的解决方法 导入的一个外部的spring boot项目,运行启动类,忽然提示找不到或者无法加载 ...

  7. [转载] Maven类包冲突终极三大解决技巧 mvn dependency:tree

    举例 A依赖于B及C,而B又依赖于X.Y,而C依赖于X.M,则A除引B及C的依赖包下,还会引入X,Y,M的依赖包(一般情况下了,Maven可通过<scope>等若干种方式控制传递依赖). ...

  8. eclipse集成tomcat运行web时提示引入jar包的类找不到的解决办法

    在eclipse集成tomcat开发web时,java类引入的jar包,编译通过,但启动tomcat运行web时提示找不到jar包内的类,需要作如下配置,将jar包在部署到集成的tomcat环境中. ...

  9. java类注入service为null_解决webservice(Java)中dao层注入为null问题

    首先在webservice指定发布的路径类中实现 ServletContextListener, 例如: import javax.servlet.ServletContextEvent; impor ...

  10. OpenFileDialog 类的ShowDialog() 错误的解决

    首先,一个类里,有个linkLabel1 private OpenFileDialog openFileDialog1; private DialogResult result; private vo ...

最新文章

  1. 软件缘-网友个人精心打造的精品软件收集
  2. AndroidStudio中Attatch debugger to Android Ptocess时 Choose Process后OK是灰色的
  3. OpenCV C++ 07 - Histogram Equalization of a Color image with OpenCV
  4. debian安装flash插件
  5. 【APICloud系列|13】移动端适配通揽
  6. php 二进制权限,基于二进制位的权限控制(数据库里的二进制)
  7. tgc 什么意思 tgt_TGT的完整形式是什么?
  8. android 跳转动画黑屏,Android8.0 适配解决页面跳转过程出现短暂黑屏的问题
  9. ECCV 2020,一种灵活高效的权重生成网络框架
  10. Mac OSX使用隐藏文件夹
  11. linux引导分区被格式化修复,/boot分区、fstab文件、/bin/mount一次性被误除修复方法...
  12. 在百度搜索引擎做网络推广怎么做,竞价推广成本和效果怎样?
  13. jQuery窗口调整大小
  14. Python——付费/版权歌曲下载
  15. ICMP协议和ping命令
  16. 新能源汽车,不需要“共享充电宝”
  17. 美颜相机android版,美颜相机手机版
  18. NetSpectre:通过网络读取任意内存
  19. 微信小程序setData不起作用
  20. 自由谈:为什么使用 Linux

热门文章

  1. css用网络图片做背景图片,网络编程css为图片设置背景图片
  2. java中国象棋棋子走法,中国象棋的规则及各种棋子的走法介绍
  3. 【洛谷P1069 细胞分裂】
  4. Win10微软输入法不见了
  5. 【GPU精粹与Shader编程】(二) 《GPU Gems 1》全书核心内容提炼总结 · 上篇
  6. 伽罗华有限域_有限域 伽罗瓦域
  7. 计算机在学前教育中作用论文,学前教育论文
  8. 褚时健:年轻人不老想着背靠大树好乘凉
  9. 简要分析VB6.0和VB.NET区别
  10. 上周热点回顾(8.18-8.24)