00:00
同学们,我们来看程序设计题。还是一样的规矩,我们先把这道题呢拿到我们的编辑工具这边来。写上它的一个文件名。EXAM07,现在是第几个文件了呢?第三个是程序设计题。我们把后缀进行一个修改。把代码拿过来。然后我们先来阅读一下这道题,它的题是什么,来看一下。它的题呢,是这样规定的,他说有一个函数叫D,这个D呢,它接收了三个形参KM和N,它的功能是返回小蚕,需要多少天才可以爬上一个树顶?树的高度呢为K厘米,小船每天白天向上爬M厘米,每天晚上因为睡觉呢向下滑N厘米,爬到顶后就不再下滑了。
01:06
而且他给的一个条件是K大于MM大于N,为什么呢?因为你的树高嘛,你的树高肯定要大于这个M,也就是说它一天肯定是爬不上去的。那么M呢,是代表它每天爬的高度,N呢,是代表它下滑的高度,那么M1定要大于N,如果M不大于N的话,这个小船就永远都爬不到树顶,对不对?他给了一个案例,他说如果我们输的是253。71和29,那就意味着比如说我们树高是270 253厘米,然后呢,小船每每一天爬71厘米,每天晚上呢下滑29厘米,最后呢,它输出六,也就是说他给了你一个数据,让你验证你将来写的代码是否正确。好,我们就分析到这里,后面他还有一个要求啊,不允许改动主主函数,另外呢,他写了一个right data和一个computer,这下面两个方法呢,大家不要去动它,不要去动它,它应该是给的有贸易的。
02:09
这个你不要去管它哈,不要去管它,这是这两个贸易的本身是他应该写上的,可能是我们这个题拿过来的时候,往他粘的时候,把这个两个报易的丢掉了,这个你不用去动它就行了,这写的很清楚,说以下部分与考生答题无关,考生不必阅读,也不能进行任何修改,好吧,就不不去动它就行了。那现在呢,我们就来开始来写这一个对函数,还是老规矩,一边写一边分析。嗯,首先呢,同学们可以看到,先把这几个含义搞懂,先把这几个含义含义搞懂,就是K表示树高。竖高能看懂吧,M呢表示每天每天爬的。爬的高度,爬。爬的高度,然后N呢,表示每天下滑的。
03:06
下滑的这个高度,呃,高度可以这样写,第一个我们就分析出来了,第二个呢,同学们看。同学们看,这里好大像,大家想一想。嗯,就说这个小蝉,它到底多少天爬上去,你是很难知道的,所以说应该是个破循环,因为蝉。这个是。禅。是这个厂。怎么没有这个蝉呢,蝉?这个层。好长。他他这个时间哈,他每天实际实际上能爬多少天呢?能能爬多高呢,每天实际爬的高度。诶,爬的高度就应该是M减N。
04:00
这个大家能看懂,看懂吗?也就是实际上他每天呢,往上爬的高度其实也只有这一个M。M就是M减。M减N这么一个高度。那大家想一想。我们怎么认为它能够爬上去呢?好,现在呢,我的思路是这样子的。我们这样子,我们设计,我们统计用一个循环,使用一个for循环。不循环。For循环,我们使用这个for循环干什么呢?用这个for循环来来计算,计算它什么时候。哎,他什么时候可以爬到爬到。爬到这个K的高度。高度。就表示成功,表示那个爬到顶呢。
05:02
爬到底。好,那么我的这个思路就有了啊,我用一个for循环,那现在开始写了,首先呢,我先定一个this。Days,然后呢,我再定一个head。等于零,我先做一个注释,这个D当然不用说了,D就是表示他将来能爬多少天就能上顶这个亥。Head。这害的呢,就是。就是小船实绩。残。实际爬的高度,实际爬的。爬的高度好,那现在就用一个负循环呢,我们怎么写呢?比如说我第一天对第一天哈。初始化为一,然后呢,这是一个一,永远是为真,然后这是加加。大家看这里。因为我并不知道他什么时候能够爬到底,所以说我这里面写的是一个是无限循环。
06:01
这里我们使用的是无限循环。无限循环。对不对,无限循环,那既然是无限循环,下面我们就看他每天实际爬的高度,刚才老师已经知道是M减N,那我们可以这样写啊,我们可以这样写。就是。呃,怎么来做这个事情呢?咱们可不可以这样写啊?就是he。高度还等于M,就它有一有一一天能爬这么高吗?就一天实际上能爬这么高吗?这个能理解吧。对,所以说我们可以可以这样来这样写,换一个思路这样写had,实际上每一天爬了这么高。对不对。也是,也就是说。他每一天爬了M。M厘米这么高,然后我就判断一下你的高度,你爬这个高度是不是已经大于等于K了。
07:07
如果说它大于等于K。它大于等于K,说明爬到顶了。说明爬到顶。这个能理解,不爬到顶。如果爬到顶的话呢,那就不用多说了,这个时候呢,我们就可以return这个days,因为它最终呢,返回的就是它的一个天数嘛,返回返回你下面你就不再走了,如果它没有大于等于K,那怎么办呢?我们这个高度要减。因为他晚上他要他要下滑。NN个厘米下滑,因为是这样子的嘛,就说。嗯,每天爬了这么高。爬了爬了M。厘米。然后呢,如果爬到顶就结束。就返回对。否则,如海明白,否则。
08:02
否则干什么呢,就会下滑,就下滑多少呢,下滑N厘米。所以说这样子呢,经过这样一个处理过后,它总有一个时间会进到我们这一个if条件语句。想想是不是这样子的,因为你总是因为你这个M呢,总是大于N的,因此它这个hi从总体来看呢,总是会。增加的对,这个代码就写完了,写完过后呢,我们就可以去试用了,不用去动它的内函数,不要动它哈,我们直接用来同学们我们使用一下,看看代码是否OK,那么为了能够看到效果呢,我们这来一个get。你写完了过后可以把这两个去掉。好的,同学们,我们来运行一下哈。那运行运行过后呢,我们看这个结果。为什么还有错误呢?看看哪里错了。
09:10
看看哪里错了,是不是我们这边。少了什么符号呀?哦,这边应该是又少加了一个括号,我看是不是这样少占了一个括号啊,你看。是不是我在这少少上了一个大括号,好,这个就没问题了,现在呢,我们再来运行。运行的时候呢,我们就按照他给的这个数据来进行测试,他给的数据呢,是253 71和29,然后返回的天数是六天,我们来看一下。第一个数253。树的高度是253,每天爬71个厘米。下滑29厘米回车,他说FOR6DAYS,就是六个天,我们就会到达这个顶,答案是正确的,好代码我们就写完了,我把这段代码呢给各位朋友板书到这里来。
10:03
这是我们的分析。和解答。代码在这儿。同学们,那关于我们这一个这。这个程序设计题就给大家讲解到这里,大家好好去想一想哈,大家去想一想。
我来说两句