第三周上机实践项目 项目4--委派任务

本文通过C++代码解决了一个复杂的任务分配问题,涉及多个条件限制,旨在选择最佳人员组合以完成任务。代码通过多层循环进行穷举搜索,确保满足所有约束条件。

问题及代码:

/*
 Copyright(c)2016,烟台大学计算机与控制工程学院
 All rights reserced
 文件名称:test.cpp
 作    者:蔡汝佳
 完成日期:2016年3月17日
 版 本 号: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;
    for(a=0;a<2;a++)
    {
        for(b=0;b<2;b++)
        {
            for(c=0;c<2;c++)
            {
                for(d=0;d<2;d++)
                {
                    for(e=0;e<2;e++)
                    {
                        for(f=0;f<2;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去 ";
                                 else
                                    cout<<"a不去 ";
                                 if(b==1)
                                    cout<<"b去 ";
                                 else
                                    cout<<"b不去 ";
                                if(c==1)
                                    cout<<"c去 ";
                                 else
                                    cout<<"c不去 ";
                                if(d==1)
                                    cout<<"d去 ";
                                 else
                                    cout<<"d不去 ";
                                    if(e==1)
                                    cout<<"e去 ";
                                 else
                                    cout<<"e不去 ";
                                    if(f==1)
                                    cout<<"f去 "<<endl;
                                 else
                                    cout<<"f不去 "<<endl;
                                    cout<<"总共"<<a+b+c+d+e+f<<"人去"<<endl;
                             }

                        }

                    }

                }
            }

        }

    }
    return 0;
}


运行结果:

知识点总结;

 

学习心得:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值