elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Piramide de Numeros -> C++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Piramide de Numeros -> C++  (Leído 5,915 veces)
Joseph CM

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Piramide de Numeros -> C++
« en: 29 Enero 2021, 19:39 pm »

Necesito Ayuda. Tengo que imprimir una pirámide de números. Ya eh intentado varias opciones. El problema esta en que la forma en como se debe imprimir es un poco compleja. El programa pide "n" numero. Por ejemplo en caso de que sea n=6, debe imprimir esto:
123456
 12345
  1234
   123
    12
     1
    12
   123
  1234
 12345
123456
Lo que yo eh intentado me imprime solo así:
1
12
123
1234
12345
123456
No me aparecen los espacios, y tampoco la pirámide superior invertida. ¿Cómo le puedo hacer? Les muestro mi código.
Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main() {
  5. int i,j,numero;
  6. cout<<"Ingrese numero"<<endl;
  7. cin>>numero;
  8. cout<<endl;
  9. for( i=1;i<=numero; i++){
  10.     for(j=1; j<=i;j++){
  11.         cout<<j;
  12.     }
  13.     cout<<endl;
  14. }
  15.  
  16. return 0;
  17. }

....

Espero obtener ayuda!   :-(  :-\

MOD: El código debe estar publicado entre etiquetas de Código GeSHi


« Última modificación: 29 Enero 2021, 20:51 pm por K-YreX » En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: Piramide de Numeros -> C++
« Respuesta #1 en: 29 Enero 2021, 21:16 pm »

El código debe estar publicado entre etiquetas de Código GeSHi. Puedes seleccionarlas en el desplegable que dice "Código GeSHi" o escribiendo directamente:
[code=cpp]
// Tu codigo C++
[/code]



Los espacios tienes que imprimirlos también tú pues el programa siempre escribirá desde la izquierda en cada línea. Entonces tienes que encontrar un patrón (una regla) que sigan estos espacios. Además lo bueno es que solo tienes que preocuparte por los espacios a la izquierda ya que a la derecha son indiferentes.

Si te fijas en la línea 0, los espacios a la izquierda son: 0. En la línea 1, los espacios a la izquierda son: 1. ...así hasta que solo imprimes 1 valor y entonces los espacios serán (n-1) y entonces empiezan a disminuir.

Otro problema que veo es que no va a parecer centrado sino que aparecerá alineado a la derecha. Esto es porque al usar fuentes monoespaciadas (todos los caracteres ocupan lo mismo), en la línea 1 (empezando a contar por el 0) el espacio ocupará el hueco del 1, el 1 el hueco del 2,..., y el 5 ocupará el hueco del 6 por lo que quedará a la derecha. La solución es incluir un espacio entre cada valor de forma que quede:
Código:
1 2 3 4
 1 2 3
  1 2
   1
  1 2
 1 2 3
1 2 3 4

Para que se entienda bien lo que tienes que hacer:
Código
  1. int numeroMaximo = 6; // por ejemplo
  2. for(int linea = 0; linea < numeroMaximo; ++linea){
  3.  // En la linea 0 -> 0 espacios | En la linea 1 -> 1 espacio | En la linea 2 -> 2 espacios | ...
  4.  for(int espacios = 0; espacios < linea; ++espacios){
  5.    cout << " ";
  6.  }
  7.  // En la linea 0 -> 6 numeros | En la linea 1 -> 5 numeros | En la linea 2 -> 4 numeros | ...
  8.  for(int numero = 1; numero <= (numeroMaximo - linea); ++numero){
  9.    cout << numero << " "; // Incluimos un espacio despues de cada numero para que tenga forma
  10.  }
  11. }
Con esto consigues la primera mitad.
Ahora te toca ver cómo haces la segunda mitad pero la idea es la misma.



En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Ayuda] piramide de numeros c++
Programación C/C++
sokolov123 2 26,104 Último mensaje 16 Octubre 2014, 17:31 pm
por rir3760
PIRAMIDE
Programación C/C++
mariano96 4 4,247 Último mensaje 13 Febrero 2015, 19:10 pm
por mariano96
ayudenme por fa con este programa de piramide de numeros doble
Programación C/C++
cristianferrer011 1 2,763 Último mensaje 22 Noviembre 2015, 23:17 pm
por 0xFer
piramide de numeros
Programación C/C++
mitzi 3 2,725 Último mensaje 23 Septiembre 2018, 18:09 pm
por MAFUS
PIRAMIDE DE NUMEROS EN C++
Programación C/C++
abril1 1 2,661 Último mensaje 4 Abril 2022, 02:17 am
por .xAk.
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines