第9周项目6-穷举法解决组合问题(5)

  1. /*  
  2.  * Copyright (c) 2014, 烟台大学计算机学院  
  3.  * All rights reserved.  
  4.  * 文件名称:test.cpp  
  5.  * 作    者:刘畅   
  6.  * 完成日期:2014年 10 月 27 日  
  7.  * 版 本 号:v1.0  
  8.  *  
  9.  * 问题描述:用穷举法解决组合问题
  10. * 输入描述: 无输入;
  11.  * 程序输出:不造输出什么;
  12. */
  13. 题目:委派任务:某侦查队接到一项紧急任务,要求在A、B、C、D、E、F六个队员中尽可能多地挑若干人,但有以下限制条件:
  14. ☺ A和B两人中至少去一人;
  15. ☺ A和D不能一起去;
  16. ☺ A、E和F三人中要派两人去;
  17. ☺ B和C都去或都不去;
  18. ☺ C和D两人中去一个;
  19. ☺ 若D不去,则E也不去;
  20. 问应当让哪几个人去: 
  21.  
  22. 源代码:
  23. #include <iostream>
    using namespace std;
    int main()
    {
        int a,b,c,d,e,f;
        cout<<"这项紧急任务应该派";
        for (a=0; a<=1; a++)
            for (b=0; b<=1; b++)
                for (c=0; c<=1; c++)
                    for (d=0; d<=1; d++)
                        for (e=0; e<=1; e++)
                            for (f=0; f<=1; f++)
                                if (a+b>=1&&(a+d)!=2&&a+e+f==2&&(b+c==0||b+c==2)&&c+d==1&&(d+e==0||d==1))
                                {
                                    if (a==1)
                                        cout<<"A ";
                                    if (b==1)
                                        cout<<"B ";
                                    if (c==1)
                                        cout<<"C ";
                                    if (d==1)
                                        cout<<"D ";
                                    if (e==1)
                                        cout<<"E ";
                                    if (f==1)
                                        cout<<"F ";
                                }
        cout<<"等人去;"<<endl;
        return 0;
    }

  24. 运行结果:
  25. 第9周项目6-穷举法解决组合问题(5)_第1张图片 
  26.  
  27. 知识点总结:
  28. 多重for循环+if多项判断,很轻松地就找到了该去做任务的可怜的娃
  29.  
  30. 学习心得:
  31. 好久没有做这种逻辑性的题目了。虽然这道题很简单,却也给我们开启了一条新的道路,这样有逻辑思维能力的程序在未来能不能判断得比人脑还要快呢?
  32.  
  33. 还有三个项目,由于最近比较忙没有来得及写代码,准备在下午的自习课上好好想一下,让程序更加完善一点再传上来。

你可能感兴趣的:(编程,C++,namespace,源代码,iostream)