ANUNCIOS
Triángulo de pascalTriangulo de pascal en C++
Aplicación desarrollada en C++, usando punteros y asignacion de memoria dinamica para calcular la N-esima fila del triangulo de pascal,
El algoritmo fue testeado en Ubuntu 12.04, usando el g++. Para compilar "g++ pascal.cpp -o pascal" y para ejecutar ./pascal
#include <iostream>
using namespace std;
//Retona la n-esima fila del triangulo de pascal,
//recibe como argumento el número de la fila
long * pascal(int fila) {
long * triangulo;
/*Creamos una matriz, en la cual guardaremos los valores
calculados del tríangulo. Los valores se guardarán en la parte triangular inferior*/
triangulo = new long[fila * fila];
/* Realizamos el recorrido desde la parte superior de la matriz, hasta llegar a
* la fila que nos interesa.
* La posicion n,m será la suma de las posiciones (n-1,m) y (n-1,m-1)
* Si estamos en la primera posicion de la fila o en la diagonal, asignamos el
* valor de 1
*/
for (int i = 0; i < fila; i++)
for (int j = 0; j <= i; j++)
if (j != 0 && j != i)
triangulo[i * fila + j] = triangulo[(i - 1) * (fila) + j)] + triangulo[ (i - 1) * (fila) + j - 1)];
else
*(triangulo + (i * fila + j)) = 1;
long * Ultima = new long[fila];
//Copiamos la ultima fila de la matriz
for (int i = 0; i < fila; i++)
Ultima[i] = triangulo[(fila - 1) * fila + i];
delete (triangulo);
return Ultima;
}
int main() {
//Lectura d la fila a calcular
int Numfilas;
cout<<"ingrese el número de fila:";
cin>>Numfilas;
long * fila = pascal(Numfilas);
for (int j = 0; j < Numfilas; j++)
cout << *(fila + j) << " ";
delete (fila); //Liberamos memoria
//Pausamos la ejecución del programa
cin.sync();
cin.get();
return 0;
}
Etiquetas: C++ PROGRAMACION
Articulos Relacionados
Publicidad
Comentarios
Como hacer benchmark de nuestros algoritmos en C o C++ en linux
Aprendiendo desarrollo web con PHP desde cero - Condicionales