ANUNCIOS
Triángulo de pascal
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
#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