Autor
|
Tema: Emparejar numeros (Leído 2,861 veces)
|
Alkro
Desconectado
Mensajes: 1
|
Tengo que hacer una rutina que pasándole una matriz de números desordenada me empareje esos numeros teniendo en cuenta que la suma de cada pareja no supere una cantidad y que a su vez sea capaz de evaluar qué emparejamientos serían los mejores para dejar la menor cantidad de numeros sin pareja.
Ejemplo:
Matriz: 2,6,3,7,8,4,2,4,2,1,1,8 Limite de suma : 10
REsultado:
1,1
2+8 6+4 7+2 8+2 3+4
Quedarian los 1's que se quedarian lejos del 10.
No se cómo empezar. ¿Algún método de ordenación o algo así por donde pueda empezar a pegarme?
|
|
|
En línea
|
|
|
|
MCKSys Argentina
|
Hola! La primer idea que me viene a la mente es: Option Explicit
Private Sub Command1_Click() Dim a() As Long Dim ret As String
ReDim a(11) a(0) = 2 a(1) = 6 a(2) = 3 a(3) = 7 a(4) = 8 a(5) = 4 a(6) = 2 a(7) = 4 a(8) = 2 a(9) = 1 a(10) = 1 a(11) = 8 ret = Emparejar(a, 10) MsgBox ret End Sub
Private Function Emparejar(Matriz() As Long, ByVal Valor As Long) As String 'devuelve una cadena del tipo: Valor1 + "," + Valor2 + "/" 'notar que el "/" es sólo un separador Dim I As Long Dim J As Long Dim Max As Long Dim retStr As String
Max = UBound(Matriz) retStr = ""
For I = 0 To Max - 1 For J = I + 1 To Max If (Matriz(I) + Matriz(J) <= Valor) Then 'la pareja no supera el valor retStr = retStr & I & "," & J & "/" End If Next J Next I Emparejar = retStr End Function
Saludos!
|
|
|
En línea
|
MCKSys Argentina "Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."
|
|
|
BlackZeroX
Wiki
Desconectado
Mensajes: 3.158
I'Love...!¡.
|
Hola!
La primer idea que me viene a la mente es:
y a mi es por que le haces la tarea -.-", digo xS
|
|
|
En línea
|
The Dark Shadow is my passion.
|
|
|
MCKSys Argentina
|
Quizas sea porque tenia poco que hacer en ese momento... Saludos!
|
|
|
En línea
|
MCKSys Argentina "Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."
|
|
|
|
|