C# :: Aufgabe #227 :: Lösung #3

6 Lösungen Lösungen öffentlich
#227

Durchnummerierung aller möglichen geordneten Ziehungsergebnisse bei 6 aus 49

Anfänger - C# von hollst - 06.09.2018 um 10:28 Uhr
Beim Lotto 6 aus 49 gibt es bekanntlich 13.983.816 mögliche (geordnete) Ziehungsergebnisse (49 über 6).

Schreibe ein Programm, das jeder dieser Möglichkeiten eine natürliche Zahl zuordnet, also

1 2 3 4 5 6 -> 1
1 2 3 4 5 7 -> 2

...
...

44 45 46 47 48 49 -> 13.983.816

Viel Spaß!
#3
vote_ok
von Layn (100 Punkte) - 18.09.2018 um 14:34 Uhr
Quellcode ausblenden C#-Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Lottozahlen
{
    class Program
    {
        
        static void Main(string[] args)
        {
            
            int zahl = 0;
            int zahl1 = 1;
            int zahl2 = 2;
            int zahl3 = 3;
            int zahl4 = 4;
            int zahl5 = 5;
            int zahl6 = 6;
            int zahlEnde = 1;
            
            for (zahl1 = 1; zahl1 < 49; zahl1++)
            {
                zahl = zahl1;
                while ( zahl == zahl2 | zahl == zahl3 | zahl == zahl4 | zahl == zahl5 | zahl == zahl6)
                {
                    zahl1++;
                    zahl = zahl1;
                }
                  
                    Zahl6(zahl1, zahl2, zahl3, zahl4, zahl5, ref zahl6, ref zahlEnde, zahl);
                    zahl6 = zahl1 + 1;
                    Zahl5(zahl1, zahl2, zahl3, zahl4, ref zahl5, ref zahl6, ref zahlEnde, zahl);
                    zahl5 = zahl1 + 1;
                    Zahl4(zahl1, zahl2, zahl3, ref zahl4, ref zahl5, ref zahl6, ref zahlEnde, zahl);
                    zahl4 = zahl1 + 1;
                    Zahl3(zahl1, zahl2, ref zahl3, ref zahl4, ref zahl5, ref zahl6, ref zahlEnde, zahl);
                    zahl3 = zahl1 + 1;
                    Zahl2(zahl1, ref zahl2, ref zahl3, ref zahl4, ref zahl5, ref zahl6, ref zahlEnde, zahl);
                    zahl2 = zahl1 + 1;
                
                Ausgabe(zahl1, zahl2, zahl3, zahl4, zahl5, zahl6, zahlEnde, zahl);
                zahlEnde++;


            }

            Console.ReadKey();
        }

        private static void Zahl2(int zahl1, ref int zahl2, ref int zahl3, ref int zahl4, ref int zahl5, ref int zahl6, ref int zahlEnde, int zahl)
        {
            for (zahl2 = zahl1 + 1; zahl2 < 49; zahl2++)
            {
                zahl = zahl2;
                while (zahl == zahl1 | zahl == zahl3 | zahl == zahl4 | zahl == zahl5 | zahl == zahl6)
                {
                        zahl2++;
                        zahl = zahl2;
                }
                Ausgabe(zahl1, zahl2, zahl3, zahl4, zahl5, zahl6, zahlEnde, zahl);
                zahlEnde++;
                Zahl6(zahl1, zahl2, zahl3, zahl4, zahl5, ref zahl6, ref zahlEnde, zahl);
                Zahl5(zahl1, zahl2, zahl3, zahl4, ref zahl5, ref zahl6, ref zahlEnde, zahl);
                Zahl4(zahl1, zahl2, zahl3, ref zahl4, ref zahl5, ref zahl6, ref zahlEnde, zahl);
                Zahl3(zahl1, zahl2, ref zahl3, ref zahl4, ref zahl5, ref zahl6, ref zahlEnde, zahl);

            }
        }

        private static void Zahl3(int zahl1, int zahl2, ref int zahl3, ref int zahl4, ref int zahl5, ref int zahl6, ref int zahlEnde, int zahl)
        {
            for (zahl3 = zahl1 + 1; zahl3 < 49; zahl3++)
            {
                zahl = zahl3;
                while (zahl == zahl1 | zahl == zahl2 | zahl == zahl4 | zahl == zahl5 | zahl == zahl6)
                {
                        zahl3++;
                        zahl = zahl3;
                }
                Ausgabe(zahl1, zahl2, zahl3, zahl4, zahl5, zahl6, zahlEnde, zahl);
                zahlEnde++;
                Zahl6(zahl1, zahl2, zahl3, zahl4, zahl5, ref zahl6, ref zahlEnde, zahl);
                Zahl5(zahl1, zahl2, zahl3, zahl4, ref zahl5, ref zahl6, ref zahlEnde, zahl);
                Zahl4(zahl1, zahl2, zahl3, ref zahl4, ref zahl5, ref zahl6, ref zahlEnde, zahl);
                

            }
        }

        private static void Zahl4(int zahl1, int zahl2, int zahl3, ref int zahl4, ref int zahl5, ref int zahl6, ref int zahlEnde, int zahl)
        {
            
            for (zahl4 = zahl1 + 1; zahl4 < 49; zahl4++)
            {
                zahl = zahl4;
                while (zahl == zahl1 | zahl == zahl2 | zahl == zahl3 | zahl == zahl5 | zahl == zahl6)
                {
                        zahl4++;
                        zahl = zahl4;
                }
                Ausgabe(zahl1, zahl2, zahl3, zahl4, zahl5, zahl6, zahlEnde, zahl);
                zahlEnde++;
                Zahl6(zahl1, zahl2, zahl3, zahl4, zahl5, ref zahl6, ref zahlEnde, zahl);
                Zahl5(zahl1, zahl2, zahl3, zahl4, ref zahl5, ref zahl6, ref zahlEnde, zahl);
                

            }
        }



        private static void Zahl5(int zahl1, int zahl2, int zahl3, int zahl4, ref int zahl5, ref int zahl6, ref int zahlEnde, int zahl)
        {
            for (zahl5 = zahl1 + 1; zahl5 < 49; zahl5++)
            {
                zahl = zahl5;
                while (zahl == zahl1 | zahl == zahl2 | zahl == zahl3 | zahl == zahl4 | zahl == zahl6)
                {
                        zahl5++;
                        zahl = zahl5;
                }
                Ausgabe(zahl1, zahl2, zahl3, zahl4, zahl5, zahl6, zahlEnde, zahl);
                zahlEnde++;
                Zahl6(zahl1, zahl2, zahl3, zahl4, zahl5, ref zahl6, ref zahlEnde, zahl);

            }
        }



        private static void Zahl6(int zahl1, int zahl2, int zahl3, int zahl4, int zahl5, ref int zahl6, ref int zahlEnde, int zahl)
        {
           
            for (zahl6 = zahl1 + 1; zahl6 < 49; zahl6++)
            {
                zahl = zahl6;
                while (zahl == zahl1 | zahl == zahl2 | zahl == zahl3 | zahl == zahl4 | zahl == zahl5 )
                {
                        zahl6++;
                        zahl = zahl6;

                    
                }

                Ausgabe(zahl1, zahl2, zahl3, zahl4, zahl5, zahl6, zahlEnde, zahl);
                zahlEnde++;
            }
        
        }


        private static void Ausgabe(int zahl1, int zahl2, int zahl3, int zahl4, int zahl5, int zahl6, int zahlEnde, int zahl)
        {
            if (zahl1 < 50 & zahl2 < 50 & zahl3 < 50 & zahl4 < 50 & zahl5 < 50 & zahl6 < 50)
            {
                Console.WriteLine("{0} - {1} - {2} - {3} - {4} - {5} : {6}", zahl1, zahl2, zahl3, zahl4, zahl5, zahl6, zahlEnde);
            }
        }
    }
}

Kommentare:

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

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