jlsonic | |
| 2006-11-10 19:38 - Respuestas: 1 - Tema nº: 2425444
Vereis, estoy en 1º Informatica, estab haciendo una relacion de ejercicios, los estaba haciendo todos fluidamente, hasta que me he atrancado en este:
Escribir un programa que lea una secuencia de numeros enteros en el rango de 0 a 100 terminada en un numero mayor que 100 o menor que 0 y encuentre la subsecuencia de numeros ordenada, de menor a mayor, de mayor longitud, dentro de la secuencia de numeros enteros. El programa nos debe decir la posiscion donde comienza la subsecuencia y su longitud:
Ejemplo
Entrada: 23 25 7 40 45 45 73 73 71 4 9 101
Salida: POSICION = 3, LONGITUD = 6
El problema solo lo puedo hacer con lo unico que dado (que es lo unico q se), es decir: con whiles,for, if ,else, variables de bool, y poco mas.
Supongo que para algunos el problema le resulte facil, pero me quedado pillado, espero alguna respuesta, y de antemano muchisimas gracias por su ayuda. Espero yo en un futuro ayudar tambien. SALUDOS | |
|
|
Prenda | |
|
Re: Duda C++ en resolucion de un ejercicio. - 2006-11-13 14:30 - Respuesta 2
Buenas,
La forma más fácil de hacerlo (no digo que sea la más eficiente) es, cargando la secuencia en un array, recorrerla una vez para localizar la secuencia más larga. Con un FOR y un par de IFs se puede hacer. Para llevar la cuenta de las secuencias que hay, vas cargando un array de dos dimensiones, donde una posicion es el punto de inicio y la segunda la cantidad de números que forman la subsecuencia.
Después, comparas en el array cual es la subsecuencia más larga y dónde está. Por último cargas un array unidimensional con la subsecuencia que has encontrado.
Saludos.
| |
|
|
|