|
楼主 |
发表于 2014-12-2 22:12
|
显示全部楼层
本帖最后由 caipiaofans 于 2014-12-2 22:14 编辑
- '那么帅老师的代码
- Sub TEST()
- Dim Arr11(), Arr12()
- Dim A As Long, B As Long, C As Long, S As Long, MK1 As Long, MK2 As Long, MK3 As Long, K1 As Long, K2 As Long
- Dim K3, K11 As Long, K12 As Long, MK21 As Long, MK31 As Long, M As Long
- Dim T
- T = Timer
- With Sheets("SHEET1")
- A = .Range("A1")
- B = .Range("A2")
- C = .Range("A3")
- S = .Range("A4")
- End With
- MK1 = Round((S - B ^ 2 - C ^ 2) ^ (1 / 2) + 0.5)
- MK2 = Round((S - A ^ 2 - C ^ 2) ^ (1 / 2) + 0.5)
- MK3 = Round((S - A ^ 2 - B ^ 2) ^ (1 / 2) + 0.5)
- For K1 = 1 To MK1 + A
- K11 = S - (A - K1) ^ 2
- If K11 > 0 Then
- MK21 = (B - MK2) ^ 2 + (C - MK3) ^ 2
- If K11 < MK21 Then
- For K2 = 1 To MK2 + B
- K12 = K11 - (B - K2) ^ 2
- If K12 > 0 Then
- K3 = K12 ^ (1 / 2)
- If K3 = Int(K3) Then
- M = M + 1
- ReDim Preserve Arr11(1 To 3, 1 To M)
- Arr11(1, M) = K1
- Arr11(2, M) = K2
- Arr11(3, M) = K3 + C
- End If
- End If
- Next K2
- End If
- End If
- Next K1
- ReDim Arr12(1 To M, 1 To 3)
- For I = 1 To M
- For J = 1 To 3
- Arr12(I, J) = Arr11(J, I)
- Next J
- Next I
- With Sheets("sheet2")
- .Range("A2:C65536").ClearContents
- .Range("A2").Resize(M, 3) = Arr12
- .Select
- End With
- MsgBox Format(Timer - T, "0秒")
- End Sub
复制代码 |
|