1、猴子吃桃子。小猴在某天摘桃若干个,当天吃掉一半多一个;第二天吃了剩下的桃子的一半多一个;以后每天都吃尚存桃子的一半多一个,到第7天要吃时只剩下一个,问小猴共摘下了多少个桃子?
2、将以上问题用数学思维进行分析:这是一个“递推”问题,先从最后一天推出倒数第二天的桃子,再从倒数第二天的桃子嘏忱较箜推出倒数第三天的桃子……。设第n天的桃子为Xn,那么它是前一天的桃子数X(n-1) 的一半减1,即X(n-1) =( Xn+1)×2
3、X(n-1) =( Xn+1)×2这个公式被多次使用,而且这次的计算结果将作为下次计算的初始值,这类递推关系就是“迭代”,迭代的次数这里根据题目意思是6次。接下来用VB6.0编程进行实现。
4、打开VB6.0,新建一个工程,在窗体中添加一个命令按钮,caption改为“计算原有桃子数”,将Form1窗体的caption属性改为“迭代算法解猴子吃桃问题”,将界面设置成下图:
5、双击“计算原有桃子数”命令按钮,进入代码编辑窗口,输入如下代码:Dim n%, i%x = 1 ' 第7天的桃子t1 = Time For i = 6 To 1 Step -1 x = (x + 1) * 2 Next i Print "原有桃子数为:"; x; "只" t2 = Time Print "计算机花去"; _DateDiff("s", t1, t2); "秒时间";
6、关闭代码窗口,按下F5运行程序,单击“计算原有桃子数”命令按钮,在窗体Form1中输出结果,如图:
7、可以看出经过6天吃桃,第7天要吃时剩1个,推算出原有桃子190个。程序中还加入计算机得出结果所花时间的代码,由于计算机运算速度很快,所以不到一秒就得出结果,所以显示花去0秒时间。