C++ :: Aufgabe #355
1 Lösung

Zahl ist Summe von Potenzwerten zur Basis 3
Anfänger - C++
von JKooP
- 18.04.2021 um 12:49 Uhr
Gegeben ist eine Integer-Zahl im Bereich von 1 bis 1.000.000.
Es soll geprüft werden, ob sich diese Zahl als Summe von Potenzwerten
zur Basis 3 darstellen lässt. Die Reihenfolge der Exponenten ist unerheblich.
Beispiele:
n = 12
Lösung: wahr => 12 = 3^1 + 3^2
n = 91
Lösung: Wahr => 3^0 + 3^2 + 3^4
n = 105
Lösung: Falsch
Erstelle eine Methode/Funktion, die für obige Aufgabenstellung als Ergebnis true/false zurückgibt.
Viel Spaß
Es soll geprüft werden, ob sich diese Zahl als Summe von Potenzwerten
zur Basis 3 darstellen lässt. Die Reihenfolge der Exponenten ist unerheblich.
Beispiele:
n = 12
Lösung: wahr => 12 = 3^1 + 3^2
n = 91
Lösung: Wahr => 3^0 + 3^2 + 3^4
n = 105
Lösung: Falsch
Erstelle eine Methode/Funktion, die für obige Aufgabenstellung als Ergebnis true/false zurückgibt.
Viel Spaß
Lösungen:
C++ 17
C-Code

#include <iostream> #include <iomanip> bool is_sum_of_powers_of_three(int n) { while (n > 0) { if (n % 3 == 2) return false; n /= 3; } return true; } int main() { for (size_t i = 0; i < 100; i++) std::cout << std::setw(3) << i << " - " << (is_sum_of_powers_of_three(i) ? "wahr" : "falsch") << "\n"; }