C# :: Aufgabe #366 :: Lösung #1
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ß
#1

von l.viktor02 (60 Punkte)
- 28.03.2021 um 15:33 Uhr

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Test_ordner { class Program { static void Main() { Console.WriteLine("Geben Sie eine Zahl ein:"); int Eingabe = Convert.ToInt32(Console.ReadLine()); Potenz(Eingabe); } public static void Potenz(int Zahl) { if (Zahl % 2 > 0 || Zahl % 2 == 0) { if (Zahl % 2 > 0 && Zahl !=1) { Console.WriteLine("Zahl: " + Zahl + " =>false. " + "Lösung: keine, da keine Ganzzahl zur Basis 2 die Zahl " + Zahl + " ergibt."); } if (Zahl % 2 == 0 && Zahl != 0) { if (Zahl == 2 || Zahl == 4 || Zahl == 8 || Zahl == 16 || Zahl == 32 || Zahl == 64 || Zahl == 128 || Zahl == 256 || Zahl == 512 || Zahl == 1024 || Zahl == 2048) { int runde = 0; for (int i = 1; i < Zahl; i = i * 2) { runde = runde + 1; } Console.WriteLine("Zahl: " + Zahl + " =>true. " + "Lösung: " + runde + " , denn 2 hoch " + runde + " = " + Zahl); } else { Console.WriteLine("Zahl: " + Zahl + " =>false. " + "Obwohl mit 2 teilbar ist." + "Lösung: keine, da keine Ganzzahl zur Basis 2 die Zahl " + Zahl + " ergibt."); } } } if (Zahl == 1 || Zahl == 0) { if (Zahl == 1) { Console.WriteLine("Zahl: " + Zahl + " =>true. " + "Lösung: " + 2 + " , denn 2 hoch " + 1 + " = " + Zahl); } if (Zahl == 0) { Console.WriteLine("Zahl: " + Zahl + " =>true. " + "Lösung: " + 1 + " , denn 2 hoch " + 0 + " = " + 1); } } } } }
Fehlermeldung:
Hallo, das ist meine erste eingereichte Lösung überhaupt im Programmieren. Bitte sei mit mir nachsichtig. Ich versuche mich verbessern, und eine bessere Lösung finden. Ich freue mich auf eine Rückmeldung, es würde mich weiter motivieren. Lg
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1