任务:委派任务
2012-11-05 11:22
176 查看
/* * Copyright (c) 2012, 烟台大学计算机学院 * All rights reserved. * 作 者:解晓东 * 完成日期:2012 年 11 月 5 日 * 版 本 号:v1.0 * * 输入描述: * 问题描述:委派任务:某侦察队接到一项紧急任务,要求在A、B、C、D、E、F六个队员中尽可能多地挑若干人,但有以下限制条件: * A和B两人中至少去一人; * A和D不能一起去; * A、E和F三人中要派两人去; * B和C都去或都不去; * C和D两人中去一个; * 若D不去,则E也不去。 * 问应当让哪几个人去? * 提示: 用a、b、c、d、e、f六个变量表示六个人是否去执行任务的状态,变量的值为1,则表示该人去;变量的值为0,则表示 * 该人不参加执行任务,根据题意可写出表达式: * a+b>1 //A和B两人中至少去一人; * a+d!=2 //A和D不能一起去; * a+e+f==2 // A、E、F三人中要派两人去; * b+c==0或b+c==2 // B和C都去或都不去; * c+d==1 //C和D两人中去一个; * d+e==0或d==1 //若D不去,则E也不去(都不去;或D去E随便)。 * 上述各表达式之间的关系为“与”关系。穷举每个人去或不去的各种可能情况,代入上述表达式中进行推理运算,使上述表达式均 * 为“真”的情况就是正确的结果。 * 程序输出: * 问题分析: * 算法设计: */ # include <iostream> using namespace std; int main() { int a, b, c, d, e, f; int count = 0; 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 > 0) && (a + d != 2) && (a + e + f == 2) && ((b + c == 0) || (b + c ==2)) && (c + d == 1) && ((d + e == 0) || (d == 1))) { ++count; cout << "第" << count << "种:" << endl; if(a) cout << "a "; if(b) cout << "b "; if(c) cout << "c "; if(d) cout << "d "; if(e) cout << "e "; if(f) cout << "f "; cout << endl; } } } } } } } return 0; }
相关文章推荐
- 第9周项目6穷举法解决问题(委派任务)
- 项目六:穷举法解决组合问题(5)委派任务
- 任务委派
- 委派任务
- 第三周项目-委派任务
- 十七周 委派任务
- 第三周项目4:穷举法解决组合问题(4)委派任务
- activiti中多实例任务中动态添加用户ID、删除用户、委派
- 第三周项目:委派任务
- 委派任务
- JIRA问题报告和任务的委派心得
- 第九周项目六 委派任务
- 17周项目五(5)。委派任务
- 第三周项目5:穷举法解决组合问题---委派任务问题
- 第九周项目六--委派任务
- 第3周项目4 委派任务
- 项目4:委派任务
- 卓越管理的实践技巧(2)成功的委派任务 Setup for Successful Delegation
- 第三周上机实践项目 项目4--委派任务
- 委派任务