C# :: Aufgabe #355 :: Lösung #2

3 Lösungen Lösungen öffentlich
#355

Liste aller zukünftigen Palindromtage in diesem Jahrtausend

Anfänger - C# von hollst - 12.02.2021 um 18:29 Uhr
Ein Datum (z. B. 12. Februar 2021) nennt man Palindromdatum, wenn es als Zahl geschrieben ein Palindrom ist (12022021, vorwärts gelesen identisch mit rückwärts gelesen).

Man schreibe ein Programm, das alle zukünftige Palindromtage bis zum 31. Dezember 2999 ausgibt.

Viel Spaß
#2
vote_ok
von hollst (13980 Punkte) - 22.02.2021 um 17:57 Uhr
Quellcode ausblenden C#-Code
using static System.Console; //VS 2019 .Net 5.0.2

System.Text.StringBuilder sb = new System.Text.StringBuilder();

int[] tage_im_monat = new int[] { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 30 };
int start = 000, end = 10000;

static string sx(string s, int x) => s.Length == x ? s : sx("0" + s, x);

int count = 0;
for (var i = start; i < end; i++)
    for (var j = 0; j < tage_im_monat.Length; j++)    {
        string sm = sx((j + 1).ToString(), 2);
        for (var k = 0; k < tage_im_monat[j]; k++)    {
            string st = sx((k + 1).ToString(), 2);
            string temp = st + sm + sx(i.ToString(), 4);
            bool bo_palindrom = true;
            for (var l = 0; l < 4; l++)
                if (temp[l] != temp[temp.Length - 1 - l])
                    bo_palindrom = false;
            if (bo_palindrom)
            {
                WriteLine($"{++count,3}: {temp}    {int.Parse(temp.Substring(4)),4}");               
                sb.Append($"{temp}, ");
            }
        }        
    }
//System.IO.File.WriteAllText("erg_palindrom.txt", sb.ToString());
ReadKey();

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben