|
我的解法(我是菜鸟,不会隐藏帖子,见谅)
<p>'运行前请将工作表清空<br/>Sub 求解()<br/>Dim n As Long<br/>n = InputBox("请输入三个MM的年龄乘积")<br/>Dim i, j, k, m, u, row As Long<br/>row = 1<br/>m = 0<br/>'先将乘积数值因式分解(这一步并不是必要的)<br/>Dim xarry(10000) As Long<br/>For u = 1 To n / 2<br/> If n Mod u = 0 Then<br/> m = m + 1<br/> xarry(m) = u<br/> End If<br/> Next u<br/> <br/>'通过循环找到满足条件的解,并假设老教授年龄不超过一百岁<br/>For i = 1 To m<br/> For j = i To m<br/> For k = j To m<br/> If xarry(i) * xarry(j) * xarry(k) = n And 2 * (xarry(i) + xarry(j) + xarry(k)) <= 100 Then<br/> <br/> Cells(row, 1).Value = xarry(i)<br/> Cells(row, 2).Value = xarry(j)<br/> Cells(row, 3).Value = xarry(k)<br/> row = row + 1<br/> End If<br/> <br/> Next k<br/> Next j<br/>Next i<br/> <br/> If Cells(1, 1).Value = "" Then<br/> <br/> Dim err As String<br/> err = MsgBox("题设条件下无解")<br/> End If</p><p>End Sub<br/></p> |
|