
ANUNCIOS

Triangulo 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | #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