甲乙丙丁四个人,每个人只会英、法、德、汉四种语言中的两种。没有一种语言大家都会,但有一种语言三个人都会。另外,甲不会法语,但当乙与丙交流时需要他当翻译。乙会汉语,丁虽然不懂但他们能交流。没有一种语言甲乙丙三个人都会。
没有人即懂德语又懂汉语,由此可推三个人都会的语言是什么?
想了好多方法都做不出 谁能给我点思路 暂时不要代码 想在做做

解决方案 »

  1.   

    英:1 法:2 德:3 汉:4
    因为甲不会法语 and 没有人有即懂德语又懂汉语
    所以甲只有2种可能 13/14
    乙与丙交流时需要翻译 and 乙会汉语 and 没有人有即懂德语又懂汉语
    所以 乙和丙的组合是 14+23/24+13
    因为丁不懂汉语,但是可以和已交流,
    所以 丁(当乙=14时) 是13/12   (当乙=24时) 是12/23
    然后就是假设...
    ps.我怀疑你这道题有问题 "没有一种语言甲乙丙三个人都会。"这句是废话,因为乙和丙交流需要翻译,所以他们肯定没有交集..
      

  2.   

    #3的答案不对,多了两组,因为有一门语言有3个人会,而你的第2个答案有两门,第4个答案一门都没有http://topic.csdn.net/u/20100812/14/95ef8e2e-9f15-4db4-9129-877793b6b360.html
    这题在上面这个帖子的34楼有,41和45楼是我的解法(41楼解出的是所有人会的语言,而题目只要求三个人会的语言,所以45楼有写了一次),而34楼的解法写错了一个条件,45楼也提到了
      

  3.   

    hmmm,思路的话,我的解法是这样的,每个人4位,分别代表会4种语言,4个人16位
    然后就根据这个来利用位运算实现题目中的条件判断,从0x0-0xffff遍历判断就可以了
      

  4.   

    这个问题在excel 画个表就搞定了!每一项当成一个需求来处理,就弄出来了!只有一种情况如下:  英 法 德 汉
    甲 1 0 1 0
    乙 1 0 0 1
    丙 0 1 1 0
    丁 1 1 0 0
    ----类似问题很多,都可以用这个思路解决! 
      

  5.   

    甲:英德
    乙:英汉
    丙:德法
    丁:英法
    可以使用java规则引擎编一个功能实现即可。