Einfach 0 gelöst 0% Erfolgsquote

Potenz von Zwei

Prüfe, ob eine Zahl eine Zweierpotenz ist.

Das lernst du

  • Zweierpotenzen durch wiederholtes Halbieren prüfen
  • Den Bit-Trick n & (n - 1) nutzen
  • Null und negative Zahlen behandeln

Problem

Entscheide, ob n gleich 2ᵏ für eine ganze Zahl k ≥ 0 ist (1, 2, 4, 8, …).

Implementiere is_power_of_two(n).

Eingabe

n: Die zu prüfende Zahl.

Ausgabe

Gib true zurück, wenn n eine Zweierpotenz ist.

Einschränkungen

-10¹⁸ ≤ n ≤ 10¹⁸

Beispiele

Beispiel 1
Eingabe:
n = 64

Erwartete Ausgabe:
expected = True
Eingabe:
long long n = 64;

Erwartete Ausgabe:
bool expected = true;
Eingabe:
long n = 64;

Erwartete Ausgabe:
bool expected = true;

Erläuterung

64 = 2⁶.

Beispiel 2
Eingabe:
n = 12

Erwartete Ausgabe:
expected = False
Eingabe:
long long n = 12;

Erwartete Ausgabe:
bool expected = false;
Eingabe:
long n = 12;

Erwartete Ausgabe:
bool expected = false;

Erläuterung

12 = 4 × 3 hat einen ungeraden Faktor und ist daher keine Zweierpotenz.

So gehst du vor

Versuch es zuerst allein und öffne dann einen Hinweis nach dem anderen.

Hinweis 1

Eine Zweierpotenz hat in Binärdarstellung genau ein gesetztes Bit.

Hinweis 2

Prüfe, ob die Zahl positiv ist, bevor du einen bitbasierten Test verwendest.

Hinweis 3

Negative Zahlen und null sind nie Zweierpotenzen.

Erwartete Komplexität

Zeit O(1), zusätzlicher Speicher O(1)

Referenzen

Diese Aufgabe wurde für CodeUtility angepasst. Beachte die oben genannten Vorgaben und Einschränkungen.

Von anderen lernen

Community-Lösungen

Noch keine veröffentlichten Lösungen. Löse die Aufgabe und teile als Erster eine Lösung.