有关“树上剩余几只鸟”的问题的思考及解答
2016-01-08 10:49
316 查看
最近,我被问到了一个貌似脑筋急转弯的问题:“树上有五只鸟,猎人开枪打死了一只,请问树上还剩下几只鸟?”
对于这个问题,想必大家都有被问到过,或者是在什么地方看到过。这个问题实际上并没有标准答案,它考察的是一个人思维的发散程度。对于自己想到的每个答案,只要能够找到让人信服的理由就可以了。
我认为,这个问题的答案可以是大于或等于0的任意一个整数,具体原因如下代码所示:
以上只是我给出的一组解答,相信大家也会给出自己心目中的答案。总的说来,从不同的角度来看待这个问题,就会给出不同的答案,这也正如一句诗所云:“横看成岭侧成峰,远近高低各不同”。
对于这个问题,想必大家都有被问到过,或者是在什么地方看到过。这个问题实际上并没有标准答案,它考察的是一个人思维的发散程度。对于自己想到的每个答案,只要能够找到让人信服的理由就可以了。
我认为,这个问题的答案可以是大于或等于0的任意一个整数,具体原因如下代码所示:
/********************************************************************** * 版权所有 (C)2015, Zhou Zhaoxiong。 * * 文件名称:AnswersOfBirds.c * 文件标识:无 * 内容摘要:有关“树上剩余几只鸟”的问题的解答 * 其它说明:无 * 当前版本:V1.0 * 作 者:Zhou Zhaoxiong * 完成日期:20160108 * **********************************************************************/ #include <stdio.h> // 重定义数据类型 typedef unsigned int UINT32; typedef signed int INT32; /********************************************************************** * 功能描述:主函数 * 输入参数:无 * 输出参数:无 * 返 回 值:无 * 其它说明:无 * 修改日期 版本号 修改人 修改内容 * --------------------------------------------------------------- * 20160108 V1.0 Zhou Zhaoxiong 创建 ***********************************************************************/ INT32 main() { UINT32 iBirdsLeft = 0; // 用于表示树上剩余的鸟的数量 // 输入想要的答案 printf("请输入你想要的答案(可以输入任意一个大于或等于0的整数): \n"); scanf("%d", &iBirdsLeft); // 根据输入的答案找到给出此答案的理由 switch (iBirdsLeft) { case 0: { printf("打死其中一只鸟之后, 这只被打死的鸟掉到了地上, 其他四只鸟因为受到了惊吓, 所以也飞走了, 树上一只鸟也没有了!\n"); break; } case 1: { printf("打死其中一只鸟之后, 这只被打死的鸟还挂在树上, 其他四只鸟因为受到了惊吓, 所以也飞走了, 树上剩下了这只被打死的鸟!\n"); break; } case 2: { printf("打死其中一只鸟之后, 这只被打死的鸟还挂在树上, 其他四只鸟中有一只是死者的伴侣, 它一直守护在死者的身边, 而另外三只鸟飞走了, 因此树上剩下了两只鸟!\n"); break; } case 3: { printf("打死其中一只鸟之后, 这只被打死的鸟还挂在树上, 其他四只鸟中有两只是死者的父母, 它们一直守护在死者的身边, 而另外两只鸟飞走了, 因此树上剩下了三只鸟!\n"); break; } case 4: { printf("打死其中一只鸟之后, 这只被打死的鸟掉到了地上, 其他四只鸟一时之间不知道发生了什么事, 都留在原地不动, 因此树上剩下了四只鸟!\n"); break; } case 5: { printf("打死其中一只鸟之后, 这只被打死的鸟还挂在树上, 其他四只鸟分别是死者的父母和两个子女, 它们一直守护在死者的身边, 因此树上剩下了五只鸟!\n"); break; } default: // 输入6或更大的数 { printf("被打死的鸟属于一个稀有的品种, 猎人因此受到了惩罚, 大家也开始保护环境, 这使得树上的鸟儿越来越多了!\n"); break; } } return 0; }
以上只是我给出的一组解答,相信大家也会给出自己心目中的答案。总的说来,从不同的角度来看待这个问题,就会给出不同的答案,这也正如一句诗所云:“横看成岭侧成峰,远近高低各不同”。
相关文章推荐
- Oracle 创建聚集索引
- Android中在Button控件上显示倒计时
- 常用Jquery插件整理大全
- 基本序列和映射规则
- Android自定义View—用canvas画两条折线图
- 计算机视觉一些代码
- Python修饰器的函数式编程
- 连接 (读书笔记)
- android 微信登录 2016-01-08
- LightOJ 1370 Bi-shoe and Phi-shoe (欧拉筛)
- JS运动相关知识点小结(附弹性运动示例)
- memmove 和 memcpy的区别
- 【设计模式】组合模式
- android Toolbar使用方法
- Ad Hoc手机测试
- Python装饰器与面向切面编程
- zabbix从入门到精通之―zabbix初体验
- 动态添加css样式至文件中
- NSString转为基本数据类型
- 服务器本地localhost端口通,走IP地址的端口不通的解决方法