C# :: Aufgabe #345

3 Lösungen Lösungen öffentlich

Zahlenpyramide (Reihenausgabe)

Anfänger - C# von JKooP - 23.11.2020 um 16:23 Uhr
Es soll per Funktion/Methode eine Zahlenpyramide (siehe jpg) mit den Ziffern 0-9 und der Höhe 10 erstellt werden.

Dies soll bewerkstelligt werden durch:

Aufgabe 1: (leicht)
mehrerer ineinander verschachtelter Schleifen,

Aufgabe 2: (schwieriger)
nur eine Schleife.

Viel Spaß

Lösungen:

vote_ok
von osternachten (100 Punkte) - 09.12.2020 um 10:48 Uhr
Da das Ziel lustigerweise klar definiert ist und nicht über 0-9 sich erhöht habe ich mir gedacht ich mach das mal so :´)
Ist natürlich nicht die perfekte Lösung mit der For Schleife aber ein lustiger Ansatz ist es.

Quellcode ausblenden C#-Code
private static void BuildPyramide()
        {
            for (int i = 0; i < 10; i++)
            {
                string mitte = "0";
                string ausgabe = "";
                string resultat = "";
                string leertasten = "";
                switch (i)
                {
                    case 0:
                        leertasten = "         ";
                        break;
                    case 1:
                        leertasten = "        ";
                        ausgabe = "1";
                        break;
                    case 2:
                        leertasten = "       ";
                        ausgabe = "12";
                        break;
                    case 3:
                        leertasten = "      ";
                        ausgabe = "123";
                        break;
                    case 4:
                        leertasten = "     ";
                        ausgabe = "1234";
                        break;
                    case 5:
                        leertasten = "    ";
                        ausgabe = "12345";
                        break;
                    case 6:
                        leertasten = "   ";
                        ausgabe = "123456";
                        break;
                    case 7:
                        leertasten = "  ";
                        ausgabe = "1234567";
                        break;
                    case 8:
                        leertasten = " ";
                        ausgabe = "12345678";
                        break;
                    case 9:
                        ausgabe = "123456789";
                        break;
                    default:
                        break;
                }
                resultat = $"{leertasten}{String.Join("", ausgabe.Reverse())}{mitte}{ausgabe}";
                Console.WriteLine(resultat);
            }
        }
vote_ok
von JKooP (11680 Punkte) - 12.02.2021 um 07:35 Uhr
NET 5.x; C# 9.x
Quellcode ausblenden C#-Code
using static System.Console;
const int Height = 10;

var i = "0";

for (int k = 0; k < Height; k++)
{
    if (k > 0) i = k + i + k;
    WriteLine(new string(' ', Height - 1 - k) + i);
}
vote_ok
von JakS (230 Punkte) - 08.03.2021 um 12:37 Uhr
Quellcode ausblenden C#-Code
        private static string GetZahlenPyramide(int maxReihen)
        {
            int i = 1;
            string m = "0";
            string s = string.Empty.PadLeft(maxReihen - 1, ' ');
            string pyramide = s + m + s + "\n";

            while (i < maxReihen)
            {
                s = s[0..^1];
                m = i.ToString() + m + i.ToString();
                pyramide += s + m + s + "\n";
                i++;
            }

            return pyramide;
        }