请教一个小程序!

来源:百度知道 编辑:UC知道 时间:2024/05/30 17:32:39
李政道博士1979年访问中国科技大学,给少年班的同学们提出了一个”猴子分苹果”的去题:海滩边撒谎能够有n只猴子分一堆苹果,第一只猴子把苹果分成n等份,还多一个,把多的一个仍到海里,取走一份;第2只猴子把剩下的分成5等分也多一个每吧多的一个仍进海里,取走一份,以后的所有猴子都如此照办,问最初至少有多少个苹果?最后至少剩多少个苹果?
要求:输入猴子个数;
输出最初至少的苹果个数和最后至少剩的苹果个数.

最后至少剩的苹果个数应该是3个。
最后一个猴子不用把苹果做等分,因为只有它。
倒数第二个猴子要想把苹果平分成两份多一个的话,只能是三个苹果。
下面是vb的代码。
在form_load中加入一下代码:
Dim MN As Integer '猴子的个数
MN = InputBox("请输入猴子的个数:")
MsgBox(GetMinAppNum(MN))

下面的代码在Form_load之外,这是一个递归函数。

Function GetMinAppNum(ByVal MN As Integer)
If MN = 2 Then '如果是第二只猴子
GetMinAppNum = 3
Else
GetMinAppNum = GetMinAppNum(MN - 1) * 2 + 1
End If

End Function

注意:本代码没有对错误的输入进行处理,如果输入的猴子数量小于2或者为小数,则输出结果不能保证正确。

欢迎访问我的论坛:)
http://www.chinesebloger.com
期待您的支持:)

太难了