1234567891011121314151617181920212223 |
- #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
- */
|