C# :: Aufgabe #231 :: Lösung #1

5 Lösungen Lösungen öffentlich
#231

Binärzahlen ohne Doppelnull

Anfänger - C# von hollst - 20.11.2018 um 09:55 Uhr
Es sein z. B. N = 10.000.

Man schreibe ein Programm, das alle natürlichen Zahlen kleiner N auflistet,
die in ihrer binären Repräsentation keine zwei aufeinander folgende Nullen besitzen.

Anmerkung: Führende Nullen werden nicht berücksichtigt, die erste natürliche Zahl, die nicht in der Liste wäre,
ist somit die 4 (4-dezimal = 100-binär).

Viel Spaß!
#1
vote_ok
von RevTreb (860 Punkte) - 27.11.2018 um 16:00 Uhr
Quellcode ausblenden C#-Code
using System;

namespace BitMaskFilter
{
    class Program
    {
        static void Main(string[] args)
        {
            
            for (int i = 1; i < 10000; i++)
                if (Test(i))
                    Console.WriteLine(string.Format("{0}\t{1}", i, Convert.ToString(i, 2)));
            Console.ReadLine();
        }

        static bool Test(int i)
        {
            string binary = Convert.ToString(i, 2);
            int actpos = 0;
            bool found = false;
            while (actpos<binary.Length)
            {
                if (binary[actpos] == '0')
                    if (binary.Length>actpos+1)
                        if (binary[actpos + 1] == '0')
                        {
                            found = true;
                            break;
                        }
                actpos++;        
            }           
            return !found;
        }
    }
}

Kommentare:

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

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