永发信息网

VB 捕鱼和分鱼

答案:2  悬赏:70  手机版
解决时间 2021-07-31 15:02
  • 提问者网友:欺烟
  • 2021-07-31 09:47

A、B、C、D、E五人在某天夜里合伙去捕鱼,到第二天凌晨时都疲惫不堪,于是各自找地方睡觉。日上三竿,A第一个醒来,他将鱼分为五份,把多余的一条鱼扔掉,拿走自己的一份。B第二个醒来,也将鱼分为五分,把多余的一条鱼扔掉,拿走自己的一份。C、D、E依次醒来,也按同样的方法拿鱼。问他们合伙至少捕了多少条鱼

用VB

最佳答案
  • 五星知识达人网友:思契十里
  • 2021-07-31 10:07

用递归。代码如下:


Private Sub Command1_Click()
Text2.Text = countFish(Val(Text1.Text), 1, 1)
End Sub


Private Function countFish(ByVal PNumber As Long, ByVal SYCount As Long, ByVal fishNumber As Long) As Long
If PNumber >= SYCount Then
fishNumber = fishNumber * PNumber + 1
fishNumber = countFish(PNumber, SYCount + 1, fishNumber)
End If
countFish = fishNumber
End Function
其中countFish是递归统计过程,参数:pnumber=捕鱼总人数;sycount是已经执行递归的次数,当该值大于pnumber时,递归返回结果,否则继续计算;fishNumber=捕鱼数量,初始值=1(确保最后一个人最少分到1条鱼)。

全部回答
  • 1楼网友:何以畏孤独
  • 2021-07-31 11:07
Private Sub Command1_Click() Dim s, b As Double Dim n As Long Do n = n + 1 b = 5 * n + 1 For i = 1 To 4 s = b * 5 / 4 + 1 b = s If CInt(s) <> s Then Exit For End If If i = 4 Then Print s Exit Sub End If Next i Loop End Sub
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯