1

Buenas me gustaría que aportarais aproximaciones sobre como elaborar una pirámide de números en c# lleve un buen dándole vueltas y no consigo ni acercarme, lo mas cerca que he estado (que es bastante lejos) es este código:

    Console.WriteLine("Indica el nivel de la pirámide: ");
    int nivel = int.Parse(Console.ReadLine());

    for (int i = 1; i <= nivel; i++)
    {
        
        for (int j = 1; j <= nivel - i; j++) 
        {
          Console.WriteLine(" ");
        }

        for (int k = i; k >= 1; k--) 
        {
            Console.WriteLine((k >= 10)?+k : " " + k);
        }
        Console.WriteLine();
    }

1 Answers1

2

El unico problema que veo es que estás imprimiendo un carácter por línea, eso te pasa porque usas Console.WriteLine cada vez que imprimes algo, y eso hace un salto de línea directamente, por lo que deberías guardar el resultado en una string y después imprimir todo de golpe en un solo Console.WriteLine.

Si cambias esto que te comento poniendolo en un string, te queda de la siguiente forma:

Console.WriteLine("Indica el nivel de la pirámide: ");
int nivel = int.Parse(Console.ReadLine());
string str = "";
for (int i = 1; i <= nivel; i++)
{
    for (int j = 1; j <= nivel - i; j++) 
    {
        str += " ";
    }

    for (int k = i; k >= 1; k--) 
    {
        str += ((k >= 10) ? k.ToString() : " " + k);
    }
        
    str += "\n";
}
    
Console.WriteLine(str);

Resultado:

         1
        2 1
       3 2 1
      4 3 2 1
     5 4 3 2 1
    6 5 4 3 2 1
   7 6 5 4 3 2 1
  8 7 6 5 4 3 2 1
 9 8 7 6 5 4 3 2 1
Marc
  • 5,005
  • 7
  • 17
  • 36