Hej :)
Mam do rozwiązania takie oto zadanie:
Użytkownik podaje trzy liczby całkowite. Napisz funkcję, która pomnoży trzy liczby całkowite bez operatora „*”. Pamiętaj o zasadach mnożenia
Napotkałem pewien problem dotyczący właśnie liczb ujemnych. Ale na początku mój kod:
def multiplication(a,b,c):
check_if_minus = 0
if( a < 0):
check_if_minus = check_if_minus + 1
a = ~a + 1
elif( b < 0 ):
check_if_minus = check_if_minus + 1
b = ~b + 1
elif( c < 0 ):
check_if_minus = check_if_minus + 1
c = ~c + 1
elif( a == 0 or b == 0 or c == 0 ):
return 0
wynik = 0
i = 0
while( i != b):
wynik = wynik + a
i = i + 1
i = 1
new = wynik
while( i != c ):
wynik = wynik + new
i = i + 1
if( check_if_minus == 1 or check_if_minus == 3 ):
wynik = ~wynik + 1
return wynik
else:
return wynik
print("Podaj trzy liczby do swoich operacji:\n")
a = int(input())
b = int(input())
c = int(input())
wynik = multiplication(a,b,c)
print(wynik)
Mój problem dotyczy tego, że nie wiem czemu, ale moje wykorzystanie operatora negacji ~nie chce działać. Nie wiem jak jest w Python-ie (moje doświadczenie w pisaniu programów z niego jeżeli chodzi o dni można liczyć jako... dzisiaj xd), ale wiem, że choćby w języku C działania na operatorach ~ powinny się udać.
Teraz mam zagwozdkę jak sobie z tym poradzić. Pomożecie? :/