C# :: Aufgabe #231 :: Lösung #4
5 Lösungen
#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ß!
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ß!
#4
von AchtungHuPe (170 Punkte)
- 03.01.2019 um 17:38 Uhr
* Anmerkungen:
* 1. Führende Nullen werden nicht berücksichtigt (die erste natürliche Zahl nicht in der Liste ist somit 4 (100)
* 2. N wird auf 2^8 limitiert. Dies ist eine willkürliche Einschränkung der Aufgabenstellung
* 3. Die Zahl 0 wird hier dem Zahlenraum der natürlichen Zahlen zugeschlagen
C#-Code
* 1. Führende Nullen werden nicht berücksichtigt (die erste natürliche Zahl nicht in der Liste ist somit 4 (100)
* 2. N wird auf 2^8 limitiert. Dies ist eine willkürliche Einschränkung der Aufgabenstellung
* 3. Die Zahl 0 wird hier dem Zahlenraum der natürlichen Zahlen zugeschlagen
using System;
namespace Decimal2Binary
{
class Program
{
static void Main(string[] args)
{
Console.Write("Gib eine positive Ganzzahl bis 255 ein: ");
string inputN = Console.ReadLine();
byte n = 0;
if (!byte.TryParse(inputN, out n))
{
Console.WriteLine("Zahl ungültig oder keine Zahl. Beenden mit beliebiger Taste.");
Console.ReadKey();
}
else
{
for (int i = 0; i <= n; i++)
{
string binary = Convert.ToString(i, 2);
bool isNullNull = false;
for (int j = 1; j < binary.Length; j++)
{
if (binary.Substring(j, 1) == "0" && binary.Substring(j - 1, 1) == "0")
{
isNullNull = true;
break;
}
}
if (!isNullNull)
{
Console.WriteLine("{0} hat in seiner Binärrepräsentation ({1}) kein zwei aufeinanderfolgende 0er.", i, binary);
}
}
}
Console.WriteLine("\nFertig, beenden mit beliebiger Taste."); Console.ReadKey();
}
}
}
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1
