Python :: Aufgabe #345 :: Lösung #2

2 Lösungen Lösungen öffentlich
#345

Zahl ist Summe von Potenzwerten zur Basis 3

Anfänger - Python 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ß
#2
vote_ok
von AlexGroeg (2010 Punkte) - 06.05.2021 um 15:27 Uhr
Quellcode ausblenden Python-Code

import math


def ist_basis_3(n):
    a = math.log(n, 3);  rest = (a *100 %100) /100
    p = a - rest 
    print('3^{}'.format(int(p)), end=' ')
    n = n - 3**(int(p))
    if n > 0:
        print('+', end = ' ')
        ist_basis_3(n)
    
    return True


beispiele = [12, 91, 105, 1000000]

for n in beispiele:
    print('\nn=',n)
    print('\tLösung:',ist_basis_3(n))

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben
2655922

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.