------- android培训、java培训、IOS培训、期待与您交流! ----------
前言:
当我们学习到函数的时候,主要涉及到的是函数的基本语法以及函数的封装,最后在听到递推关系式时,提到了递推函数
的概念. 提及的是,递推函数虽然在解决部分递推关系时比较方便,有一定的好处,但是由于递推函数的性能太差,一般不
使用递推函数,而是用for循环来替代.但是并没有提及递推函数的适合情况, 以及不适合的导致性能臃肿的情况. 在做一
个函数练习题的时候,我发现了有道题用递推函数来做并没有导致性能臃肿,反而使函数的设计步骤显得比较清晰. 下面
谈一下这个例题的两种做法,并尝试着对递推函数的适应情况做一下简单总结.
正文:
C语言算法竞赛题目:捕鱼和分鱼
A、B、C、D、E五个人在某天夜里合伙去捕鱼,到第二天凌晨时都疲惫不堪,于是各自找地方睡觉。日上三杆,A第一个醒来,他将鱼分为五份,把多余的一条鱼扔掉,拿走自己的一份。B第二个醒来,也将鱼分为五份,把多余的一条鱼扔掉,保持走自己的一份。C、D、E依次醒来,也按同样的方法拿走鱼。问他们合伙至少捕了多少条鱼?
这道题有一个很明显的递推关系,但是却需要在没有一个确定的首相的情况下推出第五项的值, 与我们一般情况下做的
函数递推关系并不太相同, 因此不是那么容易. 做完后看了下答案,这道题给的解法是这样的:
int leastFishNum(){
int totalFishNum =0; //我们要试探进行所以需要一个变量假定捕鱼的总数量数量