C# :: Aufgabe #381 :: Lösung #2
2 Lösungen
#381
Binärzahlen ohne zwei aufeinanderfolgende Nullen
Anfänger - C#
von hollst
- 09.11.2020 um 15:10 Uhr
Erstelle eine Liste der ersten 1.000 Natürlichen Zahlen, die in ihrer binären Darstellung keine zwei aufeinanderfolgende Nullen haben.
Kleine Unterstützung zur Prüfung: Die ersten 10 Zahlen der Liste sind: 0, 1, 2, 3, 5, 6, 7, 10, 11 und 13. Das 1.000ste (letzte) Element der Liste ist 10.965.
Viel Spaß!
Kleine Unterstützung zur Prüfung: Die ersten 10 Zahlen der Liste sind: 0, 1, 2, 3, 5, 6, 7, 10, 11 und 13. Das 1.000ste (letzte) Element der Liste ist 10.965.
Viel Spaß!
#2
von JKooP (18090 Punkte)
- 06.06.2021 um 18:56 Uhr
NET 5.x; C# 9.x; VS-2019
C#-Code
using System;
using System.Collections.Generic;
using System.Text;
Console.WriteLine(new BinaryWithoutDoubleZero(1, 10_000));
record BinaryWithoutDoubleZero(uint Start = 1, uint End = 100)
{
private readonly Dictionary<uint, string> _dic = new();
private static string ToBinary(uint n) => Convert.ToString(n, 2);
private static bool IsDoubleZero(string s)
{
var z = 0;
foreach (var i in s)
{
if (i == '0') z++;
else z = 0;
if (z == 2) return true;
}
return false;
}
private void SetNumbers()
{
for (uint i = Start; i < End; i++)
{
var b = ToBinary(i);
if (!IsDoubleZero(b))
_dic.Add(i, b);
}
}
public override string ToString()
{
StringBuilder sb = new();
SetNumbers();
foreach (var i in _dic)
sb.Append($"{i.Key} : {i.Value}\n");
return sb.ToString();
}
}
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1
