C# :: Aufgabe #227 :: Lösung #3
 
                       
        6 Lösungen
         
         
        
      
                
       
        
      #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ß!                                 
           
                     
        
           
           
        
           
        
        
        
        
        
        
        
        
        
      
           
    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
 
                 
        von Layn (100 Punkte)
         - 18.09.2018 um 14:34 Uhr
       C#-Code
 C#-Codeusing 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
          
          
                 Seite 1 von 0
          
                 1
          
          
             
       
    
    
    

 
    
    
    