您的位置:首页 > 其它

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

2014-10-27 10:48 309 查看
/*
* Copyright (c) 2014, 烟台大学计算机学院
* All rights reserved.
* 文件名称:test.cpp
* 作 者:刘畅
* 完成日期:2014年 10 月 27 日
* 版 本 号:v1.0
*
* 问题描述:用穷举法解决组合问题;
* 输入描述: 无输入;
* 程序输出:不造输出什么;
*/
题目:委派任务:某侦查队接到一项紧急任务,要求在A、B、C、D、E、F六个队员中尽可能多地挑若干人,但有以下限制条件:
☺ A和B两人中至少去一人;
☺ A和D不能一起去;
☺ A、E和F三人中要派两人去;
☺ B和C都去或都不去;
☺ C和D两人中去一个;
☺ 若D不去,则E也不去;
问应当让哪几个人去:

源代码:
#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;
}


运行结果:




知识点总结:
多重for循环+if多项判断,很轻松地就找到了该去做任务的可怜的娃

学习心得:
好久没有做这种逻辑性的题目了。虽然这道题很简单,却也给我们开启了一条新的道路,这样有逻辑思维能力的程序在未来能不能判断得比人脑还要快呢?

还有三个项目,由于最近比较忙没有来得及写代码,准备在下午的自习课上好好想一下,让程序更加完善一点再传上来。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: