面试编程题-猴子偷桃
近期面试两次碰到这道题,很有意思,哈哈,所以现在写下来纪念一下。
题目
一个猴子来到山里的一棵桃树下,发现有一堆桃子。第一天它吃掉一个,然后拿走一半,回到家里,把消息告诉第二个猴子。第二天第二个猴子也来了,又吃掉一个,然后拿走了一半,回到家,告诉第三个猴子。第三个猴子也是吃掉一个,然后拿走了一半。以此类推,第10天,第10个猴子来到时,发现还剩下1个桃子。求第一天总共有多少个桃子。(优先递归程序)
分析
这道题要求使用递归程序,所以首先要理解递归。递归就是循环调用自己本身。当然递归要有结束条件,不然就是无限循环调用了。
这里的结束条件就是第10天时,还剩下一颗桃子。
做这些题目,最好多画图,多举例,然后得出规律,最后去验证规律是否正确。比如以下分析:
从最后一天往前推算,n1,n2,n3,n4,n5......n10表示第n天的桃子数量
天数 桃子数量
1天: 2*n2+1
2天: 2*n3+1
3天: 2*n4+1
4天: 2*n5+1
5天: 2*n6+1
6天: 2*n7+1
7天: 2*n8+1
8天: 2*n9+1
9天: 2*n10+1
10天: 1
推出函数式:
f(10) = 1
f(n) = 2*f(n+1)+1, n取值范围[1,10)
程序编码
public class Main {public static void main(String[] args) {int r = stolenPeach(1);System.out.println(r);}/*** 猴子偷桃问题* @param n* @return*/public static int stolenPeach(int n){if(n == 10){return 1;}else{return 2*stolenPeach(n+1) + 1;}}
}
输出结果:1023
面试编程题-猴子偷桃相关推荐
- 猴子偷桃c语言编程题,猴子偷桃问题
还是C语言版的问题,还是一个用递归的问题,很有意思. 五只猴子采得一堆桃子,猴子彼此约定隔天早起后分食.不过就在半夜里,一只猴子偷偷起来,把桃子平均分成五堆后,发现还多一个,它吃掉这个桃子,并拿走了其 ...
- 猴子偷桃c语言编程软件,c语言经典算法——猴子偷桃问题
题目:海滩上有一堆桃子,五只猴子来分.第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份.第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿 ...
- python猴子偷桃递归_用matlab编程解决猴子吃桃问题
满意答案 askasp9 2013.09.03 采纳率:50% 等级:12 已帮助:12317人 我也来凑个热闹,利用递归算法,得到桃子数目 将下面程序复制,建一个StealPeach.m文件, ...
- python猴子偷桃_Python实例100个(基于最新Python3.7版本)
Python3 100例 原题地址: http://www.runoob.com/python/python-100-examples.html git地址: https://github.com/R ...
- java校招面试题_java校招面试编程题及答案.docx
java校招面试编程题及答案 java校招面试编程题及答案 Java集合框架为Java编程语言的基础,也是Java面试中很重要的一个知识点.这里,我列出了一些关于Java集合的重要问题和答案. 集合框 ...
- C++ 编程练习——猴子吃桃问题
目录 编程练习--猴子吃桃问题 编程练习--猴子吃桃问题 猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个:第二天早上又将剩下的桃子吃掉一半,又多吃了一个:以此往后,到第十天早上想再吃时 ...
- java写猴子偷桃问题_猴子偷桃是什么意思
满意答案 xucw111 2013.04.02 采纳率:42% 等级:11 已帮助:8003人 从字面意思理解就是猴子偷桃子涩!从引申意来讲这个问题就有点严肃了. 从前,有一个美丽的小村庄,名字 ...
- 实例021:猴子偷桃 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上
实例021:猴子偷桃 题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第1 ...
- python猴子偷桃 #题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第
#猴子偷桃 #题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第 10 天早 ...
最新文章
- 慈溪计算机编程培训,慈溪Python编程培训
- Python 自动化办公之 Excel 拆分并自动发邮件
- LeetCode 26 号问题 删除数组中的重复项
- AWS EC2 Run Command特性新增多重云脚本
- JavaScript单线程运行机制与并发模型
- c语言实现判断两个子图是否同构问题_经典问题-回溯法-最大团问题
- AJAX JSON之讲解
- go语言设计初衷和优势
- 常用idea快捷键大全
- iOS小技能:模拟鼠标点击(针对Mac)
- 服装尺寸 html,超完整的各种服装尺寸对照表,总有你需要的
- 如何看待腾讯市值(按 2012 年 8 月 17 日股价)超过 Facebook?
- matlab求解线性规划问题的实例代码,用matlab求解线性规划问题.doc
- FPGA入门-腾讯云布道师团队-专题视频课程
- 基于MATLAB GUI界面的串口小助手
- 生物药、创新药、仿制药新项目立项调研、评估的重要手段
- 学习笔记(03):ArcGIS10.X入门实战视频教程(GIS思维)-坐标系与地理坐标系
- Z 字形变换(C语言)
- 一个AI小白如何理解近似匹配检索
- apple IDP 个人账户升级到公司账户(转)