El Triángulo de Floyd (llamado así en honor a
Robert Floyd), es un arreglo de enteros positivos en forma de triángulo
rectángulo, en el cual:
1) El arreglo comienza con el número uno, el cual ocupa el
vértice superior del triángulo.
2) Por cada fila, se ubican tantos enteros como sea el número
de la fila, por ejemplo, en la fila dos del triángulo se ubican dos enteros.
3) A medida que se desciende por el rectángulo, pasando fila
por fila, se sigue la sucesión de enteros positivos.
Un ejemplo de triángulo de Floyd de cinco filas:
1
2 3
4 5 6
7 8 9 10
11 12 13 14 15
El siguiente programa, escrito en Java, genera un triángulo
de Floyd a partir del dato del número de filas. La complejidad del algoritmo no
radica en la sucesión en sí, la cual puede ser implementada por una variable
contadora incremental en uno, en un ciclo de número definido de repeticiones.
El problema está más bien en hacer coincidir el número de elementos de la fila,
con el número de fila en sí.
Para resolver este problema, se hizo uso de un doble ciclo
for, donde el ciclo externo controla el número de filas del triángulo y el
ciclo interno el número de elementos por fila. La variable contadora es externa
a este doble ciclo y se incrementa dentro del ciclo interno, de esa forma se
logra que su valor actual sea independiente al valor de las variables de
control tanto del ciclo interno como del externo. Por otra parte, para hacer
coincidir el número de elementos de una fila con el número de dicha fila, se
acomoda la condición de finalización del ciclo interno de la siguiente forma:
Repetir mientras variable control ciclo interno sea menor o
igual que variable control ciclo externo.
Código del programa:
import java.util.Scanner;
/*
* Genera un
triángulo de Floyd a partir del dato de entrada
* del número de
filas del triángulo.
*
*/
/**
*
* @author J.B.
*
*/
public
class TrianguloFloyd {
public static void main(String[] args) {
int numeroFilas = 0;
Scanner lector = new
Scanner(System.in);
System.out.print("Digite
cuántas filas tiene el triángulo: ");
numeroFilas
= lector.nextInt(); // Lee el número de
filas.
int
contador = 0; // Los números del triángulo
for (int i = 1; i <= numeroFilas;
i++) // Recorre las filas
{
for(int
j = 1; j <= i; j++) // Recorre cada
elemento de la fila
{
contador++;
System.out.print(" " + contador);
// Imprime el número actual en pantalla.
}
System.out.println(""); // Salto a la siguiente fila
}
}
}
Ejemplos de ejecución:
No hay comentarios:
Publicar un comentario