C# :: Aufgabe #366 :: Lösung #6
6 Lösungen

#366
Zweierpotenz (Power Of Two)
Anfänger - C#
von JKooP
- 06.03.2021 um 11:51 Uhr
Erstelle eine Methode/Funktion, mit der man bestimmen kann,
ob die übergebene Zahl als Ganzzahl- Potenz (Integer) zur Basis 2 geschrieben werden kann.
Beispiele:
Zahl: 1 => true
Lösung: 0, denn 2 hoch 0 = 1
Zahl: 16 => true
Lösung: 4, denn 2 hoch 4 = 16
Zahl: 3 => false
Lösung: keine, da keine Ganzzahl zur Basis 2 die Zahl 3 ergibt
Für Fortgeschrittene:
Die Aufgabe ohne Zuhilfenahme der eingebauten Logarithmusfunktionen lösen.
Viel Spaß
ob die übergebene Zahl als Ganzzahl- Potenz (Integer) zur Basis 2 geschrieben werden kann.
Beispiele:
Zahl: 1 => true
Lösung: 0, denn 2 hoch 0 = 1
Zahl: 16 => true
Lösung: 4, denn 2 hoch 4 = 16
Zahl: 3 => false
Lösung: keine, da keine Ganzzahl zur Basis 2 die Zahl 3 ergibt
Für Fortgeschrittene:
Die Aufgabe ohne Zuhilfenahme der eingebauten Logarithmusfunktionen lösen.
Viel Spaß
#6

von JKooP (18090 Punkte)
- 31.03.2021 um 18:37 Uhr
NET 5.x; C# 9.x; VS-2019
C#-Code
Lösung 1 (Log):
C#-Code
Lösung 2:
C#-Code

using System; Console.WriteLine(IsPowerOfTwo(17));
Lösung 1 (Log):

static bool IsPowerOfTwo(int n) => Math.Round(Math.Log(n, 2), 10) % 1 == 0;
Lösung 2:

static bool IsPowerOfTwo(int n) { if (n == 0) return false; while (n % 2 == 0) n /= 2; return n == 1; }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1