空间注册了好久,一直没有上来写过什么,最近在天竺,实在是觉得无聊,所以决定上来写写东西。
想了半天,决定以以前做的一个智力题为开头吧,题目大概是:
两个人A,B,数字为2~100之间的共99个自然数。现找出两个数,把其和告诉A,把其积告诉B。然后问A知道不知道是哪两个数,A说:“虽然我不知道,但是肯定B也不知道。”再问B,B说:“本来我不知道,但是听到A说这句话,现在我知道了。” A听到B说他知道了,然后就说:“现在我也知道了”。那么这两个数是多少呢?
做法很复杂,关键是想法。我自己写了个java的代码,把结果求了出来。嘿嘿。
思路大致如下:
1。A说:“虽然我不知道,但是肯定B也不知道。”
说明了这个和肯定不能拆成两个质数的和。例如,和如果是10,它可能是3和7,则B就知道了答案。
2。B说:“本来我不知道,但是听到A说这句话,现在我知道了。”
说明了B手中的积,拆成若干组两数相乘,有且仅有一组是符合第一个条件的,而必有大于等于一组是不符第一个条件的。
3。A听到B说他知道了,然后就说:“现在我也知道了”。
说明A手中的和,拆成若干组两数相加(两数务必在2~100之间,我在这里没注意,查了好久才发现,嘿嘿),有且仅有一组是符合前面的条件,而必有大于等于一组是不符前面的条件的。
这样的做法我就得到了结果,可能有些难搞明白,不过真的很有趣啊。