Az alábbi letöltési lehetőségek közül választhatsz: (
segítség)
Típus: text/plain
Tartalmaz szöveget
Karakterkódolás: us-ascii
Méret: 1 KB
Module Celertek
Private Const ben As Byte = 10
Private Const bec As Integer = 101
Private bet() As Integer = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
Private operators() As Char = {"+"c, "-"c, "*"c, "/"c}
Private isNotMin As Boolean = True
Private minDiff As Integer
Private minOperators(ben) As Byte
Private Sub Calculate(level As Integer, number As Integer, arrOperator() As Byte, op As Byte)
If level = ben - 1 Then
If isNotMin OrElse Math.Abs(minDiff) > Math.Abs(number - bec) Then
isNotMin = False
minDiff = number - bec
arrOperator(level) = op
arrOperator.CopyTo(minOperators, 0)
End If
Else
arrOperator(level) = op
Calculate(level + 1, number + bet(level + 1), arrOperator, 0)
Calculate(level + 1, number - bet(level + 1), arrOperator, 1)
If Math.Abs(CLng(number) * CLng(bet(level + 1))) <= Integer.MaxValue Then _
Calculate(level + 1, number * bet(level + 1), arrOperator, 2)
If bet(level + 1) <> 0 Then _
Calculate(level + 1, number \ bet(level + 1), arrOperator, 3)
End If
End Sub
Public Sub Main()
Dim i, temp(ben) As Byte
Calculate(0, bet(0), temp, 0)
Console.Clear()
For i = 0 To ben - 1
If i > 0 Then
If i > 1 Then Console.Write(")")
Console.Write(" " & operators(minOperators(i)) & " ")
Else
Console.Write(StrDup(ben - 2, "("))
End If
Console.Write(bet(i))
Next
Console.WriteLine(" = " & bec + minDiff)
Console.ReadLine()
End Sub
End Module