Escribe un programa que imprima una pirámide de dígitos como la de la figura, tomando como entrada el número de filas de la misma (debe ser menor de 10):
Tiene que tener espacios aunque aquí no se vean.
1
1 2 1
1 2 3 2 1
1 2 3 4 3 2 1
1 2 3 4 5 4 3 2 1
El código que he hecho es para el triángulo de Pascal, pero no sabría como se hace ahora para este, si alguien me pudiera modificar el código y ponérmelo se lo agradecería.
Muchas gracias.
Código C++:
Ver original
#include<iostream> using namespace std; int fac(int n);//calcula el factorial int com(int m,int n);//calcula la combinación void space(int s);//separa los números int main(){ int g,s=30;//g=grado,s=total de espacios cout<<"Introduzca el número de filas de la pirámide : ";cin>>g; for(int i=0;i<=g;i++){//desde se comienza con las combinaciones este es el m space(s);//da los espacios requeridos for(int k=0;k<=i;k++){//otra variable este es el n cout<<com(i,k)<<" ";//cacula } cout<<endl;//salto de linea s--;//se reduce en uno los espacios } return 0; } //factorial int fac(int n){ int f=1; for(int i=1 ; i<=n; i++){ f=f*i; } return f; } //combinación aquí entran los for del main //m!/(m-n)!*n! int com(int m,int n){ int com; com=fac(m)/(fac(m-n)*fac(n)); return com;//devuelve el valor de la combinación } //espacios que se dan +0- //para que aparezca centrado //ya lo modifican para los valores de dos cifras //para que parezca un triángulo void space(int s){ for(int i=1;i<=s;i++){ cout<<" "; } }