大公司面试题之猴子分桃问题

本文讲述了五只猴子分桃的问题,每只猴子在分桃过程中遇到剩余一个的情况会吃掉并拿走一堆。通过递归思想和数列求解,得出桃子至少有3121个。
摘要由CSDN通过智能技术生成

作者:云梦泽

日期:2013.11.15

地点:湖南大学软件大楼211

题目:

五只猴子分桃。半夜,第一只猴子先起来,它把桃分成了相等的五堆,多出一只。于是,它吃掉了一个,拿走了一堆; 第二只猴子起来一看,只有四堆桃。于是把四堆合在一起,分成相等的五堆,又多出一个。于是,它也吃掉了一个,拿走了一堆;.....其他几只猴子也都是 这样分的。问:这堆桃至少有多少个?

思想:

递归思想:可设为序列a1(总计),a2(1号猴分桃后),a3(2号猴分桃后),a4(3号猴分桃后),a5(4号猴分桃后),a6(5号猴分桃后),其中被5号猴分桃后假设恰好分完或者剩下最小的整数为所求

递归算法为:f(n)=f(n-1)-( f(n-1) -1  )/5   哇,当年高考常考的简单数列题额~~~记得最拿手的,求通项公式

求解:

求特征函数:哇,大三学得信号系统耶,还记得么

x=x-(x-1)/5          

解得 x=1          

得通项公式 {an-1}={a1-1}q^(n-1)={a1-1}(4/5)^(n-1)

于是 {a6-1}={a1-1}*(4/5)^5         

 a6=1+{a1-1}*(4/5)^5   

——>(a1-1)消去5的5次方这个分母即可,a1-1=3120,于是得a1=3121

思路和算法有了写代码都是很好写的啦,自己动手吧丰衣足食。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值