¡Resuelve problemas de programación en vb! ! ! ¡Gracias! !
Opción explícita
Subcomando privado1_Click()
Dim h0 como entero, s como único, a(1 a 20) como único, i como entero
a(1) = 100 'La altura del primer lanzamiento
Para i = 2 a 20 'Los datos en cada matriz representan la distancia de la pelota en una dirección, además Eso es decir, el término impar es la distancia que cae desde el punto más alto, y el término par es la distancia recorrida desde el suelo hasta el punto más alto
a(i) = a(i - 1 ) / 2
Siguiente i
Para i = 1 a 19 'La distancia total hasta el décimo rellano
s = s + a(i) p>
Siguiente
Imprimir "La distancia total del décimo aterrizaje:" & s
Imprimir "La altura del último rebote:" & a(20) 'Aquí Estoy rebotando después del décimo aterrizaje. La altura se considera la última altura mencionada
End Sub
Private Sub Command2_Click()
Dim n_a() As. Entero, n_b() Como entero, n_left () Como entero
Dim i Como entero, j Como entero, k Como entero, min Como entero
'No puedo pensar en Un método sencillo por el momento, así que lo pruebo uno por uno.
Aunque la eficiencia no es muy alta, afortunadamente el número no es muy grande.
Para i = 0 a 321 \ 17
Para j = 0 a 321 \ 27
Si i * 17 + j * 27 <= 321 Entonces
k = k + 1
ReDim Preserve n_left(k)
ReDim Preserve n_a (k )
ReDim Preservar n_b(k)
n_a(k) = i
n_b(k) = j
n_left (k ) = 321 - i * 17 - j * 27
Fin si
Siguiente
Siguiente
min = n_left(1 ) ' Encuentra la distancia restante más pequeña
j = 1 'Guarda el número de secuencia de la combinación con la distancia restante más pequeña
Para i = 2 To k 'Solo pedí un conjunto de soluciones aquí, tal vez haya diferentes combinaciones pero la distancia restante es la misma, no la enumeraré nuevamente...
Si min > n_left(i) Entonces
j = i
min = n_left(i)
Finalizar si
Siguiente
Imprimir "Combinación mínima restante: 17m X" & n_a( j) & " Raíz, 27m X" & n_b(j) & "Raíz, la longitud mínima restante es" & n_left(j"
End Sub
I); respondió la tercera pregunta Está bien... Mira la primera pregunta de la URL a continuación...