4个数计算24点
来源:互联网 发布:小霸王网络机顶盒 编辑:程序博客网 时间:2024/05/17 22:32
Option Explicit
Public Function Cal24P(n1 As Long, n2 As Long, n3 As Long, n4 As Long) As String
Dim A(3) As Double
Dim Op(3) As String
A(0) = n1
A(1) = n2
A(2) = n3
A(3) = n4
Op(0) = n1
Op(1) = n2
Op(2) = n3
Op(3) = n4
Cal24P = CalxTmp(A, Op, 3)
End Function
Private Function CalxTmp(A() As Double, Op() As String, ByVal mMax As Long) As String
Dim i As Long, j As Long, K As Long, L As Long
Dim m As Double
Dim s As String, s1 As String
Dim bMarch As Boolean
Dim B() As Double
Dim OpTmp() As String
ReDim B(mMax - 1)
ReDim OpTmp(mMax - 1)
For i = 0 To mMax
For j = 1 To mMax
If i <> j Then
L = 0
For K = 0 To mMax
If K <> i And K <> j Then
B(L) = A(K)
OpTmp(L) = Op(K)
L = L + 1
End If
Next
m = A(i) + A(j)
OpTmp(mMax - 1) = "(" & Op(i) & "+" & Op(j) & ")"
If mMax = 1 Then
If Abs(m - 24) < 0.00000001 Then
CalxTmp = OpTmp(mMax - 1)
Exit Function
End If
Else
B(mMax - 1) = m
CalxTmp = CalxTmp(B, OpTmp, mMax - 1)
End If
If CalxTmp <> "" Then Exit Function
m = A(i) - A(j)
OpTmp(mMax - 1) = "(" & Op(i) & "-" & Op(j) & ")"
If mMax = 1 Then
If Abs(m - 24) < 0.00000001 Then
CalxTmp = OpTmp(mMax - 1)
Exit Function
End If
Else
B(mMax - 1) = m
CalxTmp = CalxTmp(B, OpTmp, mMax - 1)
End If
If CalxTmp <> "" Then Exit Function
m = A(j) - A(i)
OpTmp(mMax - 1) = "(" & Op(j) & "-" & Op(i) & ")"
If mMax = 1 Then
If Abs(m - 24) < 0.00000001 Then
CalxTmp = OpTmp(mMax - 1)
Exit Function
End If
Else
B(mMax - 1) = m
CalxTmp = CalxTmp(B, OpTmp, mMax - 1)
End If
If CalxTmp <> "" Then Exit Function
m = A(i) * A(j)
OpTmp(mMax - 1) = "(" & Op(i) & "*" & Op(j) & ")"
If mMax = 1 Then
If Abs(m - 24) < 0.00000001 Then
CalxTmp = OpTmp(mMax - 1)
Exit Function
End If
Else
B(mMax - 1) = m
CalxTmp = CalxTmp(B, OpTmp, mMax - 1)
End If
If CalxTmp <> "" Then Exit Function
If A(j) <> 0 Then
m = A(i) / A(j)
OpTmp(mMax - 1) = "(" & Op(i) & "/" & Op(j) & ")"
If mMax = 1 Then
If Abs(m - 24) < 0.00000001 Then
CalxTmp = OpTmp(mMax - 1)
Exit Function
End If
Else
B(mMax - 1) = m
CalxTmp = CalxTmp(B, OpTmp, mMax - 1)
End If
End If
If CalxTmp <> "" Then Exit Function
If A(i) <> 0 Then
m = A(j) / A(i)
OpTmp(mMax - 1) = "(" & Op(j) & "/" & Op(i) & ")"
If mMax = 1 Then
If Abs(m - 24) < 0.00000001 Then
CalxTmp = OpTmp(mMax - 1)
Exit Function
End If
Else
B(mMax - 1) = m
CalxTmp = CalxTmp(B, OpTmp, mMax - 1)
End If
End If
End If
Next
Next
End Function
- 4个数计算24点
- N个数计算24点
- 计算平面上连成线的点最大个数
- 计算N内点对互质个数
- POJ2002Squares【求点集中正方形的个数 计算几何+Hash】
- 计算N内点对互质个数
- 计算N内点对互质个数
- 计算4个数的最大值
- 计算24点
- 计算24点
- C#计算24点
- 计算24点
- Java计算24点
- python计算24点
- 计算24点
- 计算24点问题
- 24点计算
- 计算24点
- sh 脚本里执行的export不起作用
- 好久不来了。
- 常用分页函数辅助类
- java获取classpath路径
- org.hibernate.NonUniqueObjectException
- 4个数计算24点
- GPU入门------概念篇(硬件,CUDA,OPENCL)
- 图片分左右不同点击效果不同的处理方法
- 跟JBPM学习设计模式之简单工厂模式
- TextView属性小结
- Android获取手机号/手机串号 现在已经不能获取了
- 一日一点RakNet(55)--Crash Reporter(崩溃报告器)
- javascript求教高手(连数据库没问题)
- php/回顾1