Ayuda para mejora de centro numérico
ALGUIEN ME PODRÍA AYUDAR A MEJORAR MI PROGRAMA DE CENTROS NUMÉRICOS(Un centro numérico es un número que separa una lista de números enteros (comenzando en 1) en dos grupos de números, cuyas sumas son iguales. El primer centro numérico es el 6, el cual separa la lista (1 a 8) en los grupos: (1; 2; 3; 4; 5) y (7; 8) cuyas sumas son ambas iguales a 15)
He llegado hasta el numero 1681 pero si coloco números mayores el programa tarda mucho en reaccionar, alguien me podría decir como mejorar el código por favor, el código que utilizo es el siguiente:
Private Sub Command1_Click()
Dim val1 As Integer, val2 As Double
Dim suma As Double, x As Integer
Dim n As Integer, contador2 As Integer
val1 = Int(Text1.Text)
val2 = val1
contador2 = 1
otra:
x = 0
suma = 0
n = 0
For x = 1 To (val1 - 1)
Text7.Text = val1
Text8.Text = val2
Text4.Text = x
Text3.Text = contador2
Text6.Text = n
suma = suma + x
Text5.Text = suma
If suma >= val2 Then
If x + contador2 = (val1 - 1) Then
If suma = val2 Then
Text2.Text = x + 1
GoTo FINAL
Else
val1 = val1 - 1
val2 = val1
contador2 = 1
GoTo otra
End If
End If
If x + contador2 > (val1 - 1) Then
val1 = val1 - 1
val2 = val1
contador2 = 1
GoTo otra
End If
n = n + 1
val2 = val2 + (val1 - n)
contador2 = contador2 + 1
End If
Next x
Exit Sub
FINAL:
End Sub
He llegado hasta el numero 1681 pero si coloco números mayores el programa tarda mucho en reaccionar, alguien me podría decir como mejorar el código por favor, el código que utilizo es el siguiente:
Private Sub Command1_Click()
Dim val1 As Integer, val2 As Double
Dim suma As Double, x As Integer
Dim n As Integer, contador2 As Integer
val1 = Int(Text1.Text)
val2 = val1
contador2 = 1
otra:
x = 0
suma = 0
n = 0
For x = 1 To (val1 - 1)
Text7.Text = val1
Text8.Text = val2
Text4.Text = x
Text3.Text = contador2
Text6.Text = n
suma = suma + x
Text5.Text = suma
If suma >= val2 Then
If x + contador2 = (val1 - 1) Then
If suma = val2 Then
Text2.Text = x + 1
GoTo FINAL
Else
val1 = val1 - 1
val2 = val1
contador2 = 1
GoTo otra
End If
End If
If x + contador2 > (val1 - 1) Then
val1 = val1 - 1
val2 = val1
contador2 = 1
GoTo otra
End If
n = n + 1
val2 = val2 + (val1 - n)
contador2 = contador2 + 1
End If
Next x
Exit Sub
FINAL:
End Sub
1 respuesta
Respuesta de javier_007
1