vb转换为asp (纯计算)

Function SQ(ByVel a As Integer) As Integer
Dim i, k As Integer
Dim flag As Boolean

flag = False
i = 2
k = 1
Do Until flag = True
If a >= i ^ 2 Then
If CLng(a / i ^ 2) = a / i ^ 2 Then
k = k * i
a = a \ i ^ 2
Else
i = i + 1
End If
Else
flag = True
End If
Loop
SQ = k
End Function

Function GYS(ByVal x As Integer, ByVal y As Integer) As Integer
Dim Temp As Integer
x = Abs(x)
y = Abs(y)
If x = 0 Then x = 1
If y = 0 Then y = 1
Do Until x = y
If x > y Then x = x - y Else y = y - x
Loop
GYS = x
End Function

Private Sub main()

Dim a, b, c As Integer
a = 1
b = 2
c = -3
Dim Temp As Integer
Temp = GYS(GYS(a, b), c)
a = a \ Temp
b = b \ Temp
c = c \ Temp
Dim Delta As Integer
Delta = b ^ 2 - 4 * a * c
If Delta < 0 Then
Label1 = "Cannot Solve"
Else
Dim SD As Integer
SD = SQ(Delta)
a = a * 2
Temp = GYS(GYS(a, b), SD)
If Temp > 1 Then
a = a \ Temp
b = b \ Temp
SD = SD \ Temp
End If
Dim Temp0 As Integer
Temp0 = Temp
Temp = Delta \ (SD ^ 2 * Temp ^ 2)
If CLng(Sqr(Temp)) - Sqr(Temp) = 0 Then

Temp = CLng(Sqr(Temp)) * SD
If (-b + Temp) / a = (-b + Temp) \ a Then
Label1 = "x1=" & (-b + Temp) \ a
Else
Label1 = "x1=" & (-b + Temp) \ GYS(-b + Temp, a) & "/" & a \ GYS(-b + Temp, a)
End If
If (-b - Temp) / a = (-b - Temp) \ a Then
Label2 = "x2=" & (-b - Temp) \ a
Else
Label2 = "x2=" & (-b - Temp) \ GYS(-b - Temp, a) & "/" & a \ GYS(-b - Temp, a)
End If

Else

If a <> 1 Then
If SD <> 1 Then
Label1 = "X1=(" & (-b) & "+" & SD & "*Sqrt(" & Delta \ (SD ^ 2 * Temp0 ^ 2) & "))/" & a
Label2 = "X2=(" & (-b) & "-" & SD & "*Sqrt(" & Delta \ (SD ^ 2 * Temp0 ^ 2) & "))/" & a
Else
Label1 = "X1=(" & (-b) & "+" & "Sqrt(" & Delta \ (SD ^ 2 * Temp0 ^ 2) & "))/" & a
Label2 = "X2=(" & (-b) & "-" & "Sqrt(" & Delta \ (SD ^ 2 * Temp0 ^ 2) & "))/" & a
End If
Else
If SD <> 1 Then
Label1 = "X1=" & (-b) & "+" & SD & "*Sqrt(" & Delta \ (SD ^ 2 * Temp0 ^ 2) & ")"
Label2 = "X2=" & (-b) & "-" & SD & "*Sqrt(" & Delta \ (SD ^ 2 * Temp0 ^ 2) & ")"
Else
Label1 = "X1=" & (-b) & "+" & "Sqrt(" & Delta \ (SD ^ 2 * Temp0 ^ 2) & ")"
Label2 = "X2=" & (-b) & "-" & "Sqrt(" & Delta \ (SD ^ 2 * Temp0 ^ 2) & ")"
End If
End If

End If
End If
End Sub

最好能用新页面输入a,b,c。label直接输出就可以。
我自己就是按照 KarasCanvas 你方法搞的。我函数也调过。报错。。= =

把强类型的声明去掉就行了, As Type 这部分去掉
温馨提示:答案为网友推荐,仅供参考