Sub 求鱼()
Call 最小整数鱼(5, 1)
End Sub
Function countFish(ByVal PNumber As Long, ByVal SYCount As Long, ByVal fishNumber As Long)
Select Case SYCount
Case PNumber '总人数。
countFish = fishNumber * PNumber + 1
Case Else '未达到总人数。继续递归。
countFish = (countFish(PNumber, SYCount + 1, fishNumber) * PNumber) / (PNumber - 1) + 1
End Select
End Function
Function 最小整数鱼(ByVal PNumber As Long, ByVal SYCount As Long)
Do
m = m + 1
最小整数鱼 = countFish(PNumber, SYCount, m)
Loop Until 最小整数鱼 = Int(最小整数鱼)
Debug.Print PNumber & "人至少捕捞到" & 最小整数鱼 & "条鱼"
Debug.Print "第1人至少看到" & 最小整数鱼 & "条鱼"
For i = 2 To 5
s = Int(最小整数鱼 / PNumber) * (PNumber - 1)
Debug.Print "第" & i & "人至少看到" & s & "条鱼"
最小整数鱼 = s
Next i
End Function