Chinaunix首页 | 论坛 | 博客
  • 博客访问: 29132
  • 博文数量: 16
  • 博客积分: 600
  • 博客等级: 上士
  • 技术积分: 170
  • 用 户 组: 普通用户
  • 注册时间: 2008-02-21 13:21
文章分类

全部博文(16)

文章存档

2011年(1)

2008年(15)

我的朋友
最近访客

分类: C/C++

2008-03-13 12:24:52

/*某任务需要在a b c d e五个人中物色人员去完成,但是有一些条件
(1) 若a去,则b也去.
(2) d e两人必有人去
(3) b c中只去一人
(4) c d两人要么都去,要么都不去
(5) 若e 去,则a b都去*/
#include<iostream>
#include<time.h>
#include<bitset>
using namespace std;
void print(int i);
void main()
{
    clock_t start=clock();
    for(int i=0;i<32;i++)
    {
        if(i>>4 && !((i&8)>>3)) continue;
        if(!((i&2)>>1) && !(i&1)) continue;
        if(((i&8)>>3)==((i&4)>>2)) continue;
        if(((i&4)>>2)!=((i&2)>>1)) continue;
        if((i&1) && !((i>>4) && ((i&8)>>3))) continue;    
        print(i);
    }
    cout<<(clock()-start)/CLK_TCK<<endl;
      
    
}
void print(int i)
{
    cout<<((i&16)?" a ":"~a")//?:操作符输出时数据类型要相同
        <<((i&8)?" b ":"~b")
        <<((i&4)?" c ":"~c")
        <<((i&2)?" d ":"~d")
        <<((i&1)?" e ":"~e")<<endl;
}





  
 

阅读(458) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~