Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
def multi(x,y):
prod = 0
while y > 0:
if y % 2 == 1: # Zweiter Faktor ist ungerade
prod = prod + x # Ein "gutes" Haus: Addieren!
y = y - 1 # Nun ist er wieder gerade!
else:
x = x + x # Erster Faktor wird verdoppelt
y = y / 2 # Zweiter Faktor wird halbiert
return prod
ich will aber in binär die einzelnen Teile und als Produkt
Und der Fehler wäre, dass im ``else``-Zweig das ``return`` fehlt.
Der Funktionsname ist übrigens "falsch", weil hier keine Dezimaldarstellung in eine Binärdarstellung umgewandelt wird, sondern eine (ganze) Zahl in Binärdarstellung.
was ich auch mache, mir fehlt immer die erste Stelle. Ist auch plausibel, da 1/2 nunmal 0 ist und an der Rekursionsabbruchbedingung "" statt "1" zurückgegeben wird.
Aber das ist doch eine Standardaufgabe a la EDIT: ACHTUNG, bitte nicht verwenden, da fehlerhaft für Parameter 0. Korrektur weiter unten im Thread!!