Título: Recorrer array Publicado por: sergio88 en 22 Septiembre 2019, 03:33 am Buenas noches, alguien me podría dar una mano con este ejercicio ?
Dado un array de enteros, hacer una función que indique que rangos de números consecutivos dan como resultado la cantidad que se le pasa como parámetro: Ej: array=(6,7,5,4,3,1,2,3,5,6,7,9,0,0,1,2,4,1,2,3,5,1,2) sumar(13) Los elementos entre (0,1) suman 13 Los elementos entre (2,5) suman 13 Los elementos entre (3,7) suman 13 Los elementos entre (9,10) suman 13 Los elementos entre (12,19) suman 13 Los elementos entre (13,19) suman 13 Los elementos entre (14,19) suman 13 Los elementos entre (18,22) suman 13 Título: Re: Recorrer array Publicado por: EdePC en 22 Septiembre 2019, 05:30 am Saludos,
- La idea es guardar un índice inicial (idxIni) e ir sumando los demás valores hasta igualar la cantidad dada, si es igual: se imprime, se resetea la suma y se continúa con el siguiente índice, si se pasa: se hace lo mismo pero sin imprimir. - A mí me está funcionando lo siguiente, ya te toca entenderlo e implementarlo dentro de una función: Código
Código: C:\Users\EdSon\Desktop>java Recorre.java Título: Re: Recorrer array Publicado por: Serapis en 23 Septiembre 2019, 00:50 am Te pongo una sencilla solucion en pseudocodigo, a ti te toca pasarlo luego al lenguaje de tu interés, lo que solo te será posible si alcanzas a entenderlo correctamente (espero que si). con culaquier duda, pregunta...
Código: entero = funcion X(array entero Valores, entero Valor) Ejemplo para el array: (5, 5, 2, 3, 7, 0, 7, 8, 7, 0, 4, 8, 7, 3, 9, 8, 0, 9, 3, 5, 7, 3, 5, 4, 2) con valor: 27 Resultados: 7 02-07 :::: 2 + 3 + 7 + 0 + 7 + 8 = 27 07-11 :::: 8 + 7 + 0 + 4 + 8 = 27 11-14 :::: 8 + 7 + 3 + 9 = 27 12-15 :::: 7 + 3 + 9 + 8 = 27 16-21 :::: 0 + 9 + 3 + 5 + 7 + 3 = 27 17-21 :::: 9 + 3 + 5 + 7 + 3 = 27 18-23 :::: 3 + 5 + 7 + 3 + 5 + 4 = 27 Con tu array: (6, 7, 5, 4, 3, 1, 2, 3, 5, 6, 7, 9, 0, 0, 1, 2, 4, 1, 2, 3, 5, 1, 2) y el valor que diste: 13 Resultados: 8 00-01 :::: 6 + 7 = 13 02-05 :::: 5 + 4 + 3 + 1 = 13 03-07 :::: 4 + 3 + 1 + 2 + 3 = 13 09-10 :::: 6 + 7 = 13 12-19 :::: 0 + 0 + 1 + 2 + 4 + 1 + 2 + 3 = 13 13-19 :::: 0 + 1 + 2 + 4 + 1 + 2 + 3 = 13 14-19 :::: 1 + 2 + 4 + 1 + 2 + 3 = 13 18-22 :::: 2 + 3 + 5 + 1 + 2 = 13 Este algoritmo a diferencia del que ofrece EdePC, no precisa volver a sumar todo cada vez... es lineal, solo suma vada indice del array una vez, por tanto es más óptimo en cuanto a rendimiento. p.d.: Me acabo de acordar que hace 2-4 días, dijsktra publicó en el foro de C, un problema muy similar, solo que aquél versaba de la diferencia entre pares de valores en un array (ordenado)... a dicha solución puede llegarse modificando el presente algoritmo... aunque es lo suficientemente distinto, como para empezar desde cero. Título: Re: Recorrer array Publicado por: sergio88 en 23 Septiembre 2019, 05:27 am Gracias por la mano muchachoss, ahi estoy tratando de escribir una funcion propia. Saludosss
|