|
@@ -0,0 +1,22 @@
|
|
|
+#include <iostream>
|
|
|
+
|
|
|
+int main() {
|
|
|
+ std::cout << 61;
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+/**
|
|
|
+ * 我要 61
|
|
|
+这是一道推理题,Acm的题目很杂,所以多刷题,多见一下其他的题目。下面是推理过程。
|
|
|
+A认为B也不知道,那么A凭什么认为B也不知道女士的年龄呢,这半句的意思就是,
|
|
|
+ 我得到的十位上的数字,它所在的行的答案的个位数一定和别的行是有重复,
|
|
|
+ 绝不可能是独一无二的,我们观察下这些数字,发现38和57的个位数字是独一无二的,
|
|
|
+ 那么也就是说A所得到的十位数字绝不是3或者5,否则他不能说出认为B也不知道这种话。
|
|
|
+ 其次,第二句,B说原本不知道C的年龄那么说明B拿到的个位数字不是8或者7,要不然B就知道了女士的年龄;
|
|
|
+ 然后下半句说他知道了,那么B是怎么从不知道变知道的呢?答案就是B进行了上面的推理,
|
|
|
+ 知道了A拿到的十位数字是4或者6,然后通过结合自己的个位数字知道了女士的年龄。那么,
|
|
|
+ 这样就可以排除个位数字是2,因为如果是2就会有42和62两个答案。 再次,第三句,A说自己也知道了,
|
|
|
+ 那么A怎么通过B的回答就知道了女士年龄的呢?通过上面的推理,可以知道年龄有三种可能——45、46、61,
|
|
|
+ 但是A仅仅知道十位上的数字,那么这样就可以排除十位上的数字是4,
|
|
|
+ 因为十位是4的有两个答案。 至今推理结束,答案是唯一留下来的61
|
|
|
+ */
|
|
|
+
|