C++ :: Aufgabe #338

1 Lösung Lösung öffentlich

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ß

Lösungen:

vote_ok
von JKooP (18090 Punkte) - 31.03.2021 um 18:47 Uhr
C++ 17
Lösung 2:
Quellcode ausblenden C-Code
#include <iostream>

bool is_power_of_two(int n)
{
    if (n == 0) return false;
    while (n % 2 == 0) n /= 2;
    return n == 1;
}

int main()
{
    std::cout << (is_power_of_two(17) ? "wahr" : "falsch") << std::endl;
}