菜鸡打卡 蓝桥杯 算法训练 递归 猴子分苹果 (两种解法)

这是一篇关于蓝桥杯算法训练的博客,详细介绍了使用递归解决猴子分苹果问题的思路和两种代码实现。通过设立边界条件和递推公式,确定每个猴子拿到的苹果数量,并探讨了确保每次分配都能被n整除的方法。最后提供了满足至少分配条件的苹果总数计算公式,并给出了源代码实现。
摘要由CSDN通过智能技术生成

在这里插入图片描述试题传送门
显而易见是一道递推题
递推题的两个关键:一个是边界 一个是递推公式

思路

若假设总苹果数是x,第一只猴子一顿操作之后吃了m个,藏了一部分。即藏了(x-m)/n个,即藏了的和吃的一共是(x-m)/n+m。在这里x-m是并不能被n整除的,因而我们可以稍作改动,把总数设为y=x+(n-1)*m,这样就能确保每次都被n整除了(为什么是n-1等下会讲)。
第一只猴子吃m个,再藏(x-m)/n个(和上面不做改变的情况相同),即第一只猴子共拿了y/n个苹果,苹果剩((n-1)y/n,依次计算下去则可以推算出第一天最后一个猴子分了后还剩((n-1)^n /n^n)y;
题目要求是至少,即可设平均分配量为1,即((n-1)^n /n^n+1)y=1,要使该等式成立,则y = n^n+1,再根据y = x + (n-1)m可以得到x = n^n+1 - (n-1)m;

代码一

#include 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值