首页 新闻 会员 周边 捐助

ALG_P:XX部队XX侦察队队【求解答】

0
悬赏园豆:10 [待解决问题]
-- ========================================================
-- ylb:算法
-- Type:算法[for]
-- munu:XX部队XX侦察队队
-- thankyou:sunshine,谢谢您的付出
-- 7:11 2012/3/17
-- ========================================================
     XX部队XX侦察队队长接到一项紧急任务,需要他在代号为A、B、C、D、E、F六个队员中挑选若干人去侦查一件重要的案子。因为任务的特殊性,所以,对人选有如下要求:
1,A、B中至少去一人;
2,A、D不能一起去;
3,A、E、F中要去两个人;
4,B、C要么都去要么都不去;
5,C、D中去一个人;
6,如果D不去,那么E也不去。
请列出你的思路,编写程序?
 
分析:
我们从1开始往下推
1,
有三种情况
1_1,只有A去;
1_2,只有B去;
1_3,A、B都去;
2,
有两种情况
2_1,A去;
2_2,D去;
3,
有三种情况
3_1,A、E去;
3_2,A、F去;
3_3,E、F去;
4,
4_1,B、C都去;
4_2,B、C都不去
5,
5_1,C去;
5_2,D去;
6,
6_1,如果有D则E也不去。
 
如何写程序?
ylbtech的主页 ylbtech | 初学一级 | 园豆:186
提问于:2012-08-10 10:44
< >
分享
所有回答(1)
1

网上的代码

List<string> l = new List<string>();            

for (int a = 0; a <= 1; a++)            

{                

   for (int b = 0; b <= 1; b++)                

   {                    

  for (int c = 0; c <= 1; c++)                    

  {

                for (int d = 0; d <= 1; d++)                        

       {                            

          for (int e = 0; e <= 1; e++)                            

             {                                

              for (int 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))                                    

                     {                                        

                        l.Add(a + "" + b + "" + c + "" + d + "" + e + "" + f);                                     }

                                }                             }                         }                     }                 }             }             label10.Text = string.Join(",", l.ToArray());

结果是abcf
 

 

a85295853 | 园豆:2 (初学一级) | 2012-08-10 16:33
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册