Ejercicio que no puedo resolver.
Publicado por
Mauricio (1 intervención) el 22/12/2014 01:34:08
Hola, ner0ck. Antes que nada, creo que es importante tener clara la naturaleza del problema a que nos enfrentamos, para así poder diseñar un algoritmo adecuado para su resolución. ¿De qué trata este problema? Pues, de un triángulo formado por series de números en líneas sucesivas. Por otra parte, los valores de estos números son de acuerdo a cierto orden o a cierta regla: en cada línea n, la serie inicia con el valor n%10 (el residuo de n al dividirla por 10), y continúa con los sucesivos residuos del 10 hasta tener n números, entonces empieza a decrecer, repitiéndose la misma sucesión en orden contrario.
Ejemplo 1: en la línea 15, se inicia con 15%10, es decir, con 5, hasta tener 15 residuos: 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, y luego continúa la misma serie pero en orden inverso: 8, 7, 6, 5, 4, 3, 2, 1, 0, 9, 8, 7, 6, 5. (Resultado en la línea 15: 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 8, 7, 6, 5, 4, ,3, 2, 1, 0, 9, 8, 7, 6, 5.)
Ejemplo 2: en la línea 6, se inicia con 6%10, o bien 6, seguidos de otros residuos de la división por 10, hasta tener 6 residuos: 6, 7, 8, 9, 0, 1. Pero, luego se regresa la sucesión: 0, 9, 8, 7, 6. (Resultado en la línea 6: 6, 7, 8, 9, 0, 1, 0, 9, 8, 7, 6.)
Este problema puede ser resuelto empleando cuatro ciclos for. El primero servirá para llevar un control de las instrucciones a realizarse para obtener cada línea del triángulo. Los otros tres van dentro de este primer ciclo for. Y es que hay tres cosas que deben hacerse en cada línea para construir el triángulo: 1) imprimir algunos espacios en blanco antes de los números para que queden centrados, 2) imprimir los números y 3) reimprimirlos en orden inverso. Cada una de estas tareas se puede hacer mediante un ciclo for y el método System.out.print(). Al final de cada ítem del ciclo for principal, deberá usarse System.out.println(" "), para el salto de línea.
No entro en más detalles, ya que no quieres la mera respuesta. Pero si en relación a este algoritmo que te propongo tienes alguna pregunta, estoy para servirte. No soy un experto en Java, pero trataré siempre de ayudar en lo que pueda. Espero que te sea útil mi aportación.
Saludos.