Twitter Flickr Pinterest LinkedIn YouTube Google Maps E-mail RSS
formats

El triángulo de Floyd y un ejemplo en C

El Triángulo de Floyd, llamado así en honor a Robert Floyd, es un triángulo rectángulo formado con números naturales.

Robert W. Floyd  fue un prominente científico estadounidense en informática. Recibió el Premio Turing de la ACM en 1978 «por tener una clara influencia en las metodologías para la creación de software eficiente y confiable, y por haber contribuido a la fundación de las subáreas teoría del reconocimiento de frases, semántica de los lenguajes de programación, verificación automatizada de programas, síntesis automatizada de programas y análisis de algoritmos»

Para crear un triángulo de Floyd, se comienza con un 1 en la esquina superior izquierda, y se continúa escribiendo la secuencia de los números naturales de manera que cada línea contenga un número más que la anterior:

1
2 3
4 5 6
7 8 9 10
11 12 13 14 15

 
Veamos como se puede programar …

Una de los ejercicios más comunes en los cursos de introducción a la programación de ordenadores consiste en escribir un pequeño programa que produzca este triángulo.

El triángulo de Floyd tiene varias propiedades matemáticas interesantes. Los números del cateto de la parte izquierda forman la secuencia de los números poligonales centrales, mientras que los de la hipotenusa nos dan el conjunto de los números triangulares.

La suma de los números de la línea n equivale a n(n2 + 1)/2 (sucesión A006003 en OEIS).

Ejemplo en código C

/***********************************************************
Programa: Triangulo de Floyd
 
Descripción:
 
Autor: Oscar de la Cuesta
Este programa es una demostración para el aprendizaje.
 
************************************************************/
 
#include <stdio.h>
 
int main() {
int N; /*Ultimo número a imprimir*/
int linea = 0; /*contador de líneas*/
int primero = 0; /*primer número de la línea*/
int ultimo = 0; /*Ultimo número de la línea*/
 
/*--Leer el límite de la serie--*/
printf(  "Cuál es el límite de la serie ? ");
scanf( "%d", &N);
 
/*--Imprime el triángulo mediante un bucle de líneas--*/
while (ultimo<N) {
/*actualizar los límites*/
linea++;
primero=ultimo+1;
ultimo=ultimo+linea;
if (ultimo>N) {
ultimo=N;
}
 
/*imprimir los números*/
for (int k=primero; k<=ultimo; k++) {
printf("%5d", k);
}
printf("\n");
}
}

 

Etiquetas:, , ,

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Home Programación El triángulo de Floyd y un ejemplo en C
© www.palentino.es, desde el 2012 - Un Blog para compartir conocimientos ...

Uso de cookies en mi sitio palentino.es

Este sitio web utiliza cookies para que tengamos la mejor experiencia de usuario. Si continúas navegando estás dando tu consentimiento para la aceptación de las mencionadas cookies y la aceptación de la política de cookies

ACEPTAR
Aviso de cookies