D.cpp 1.5 KB

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