Welcome on my blog

We use cookies to ensure you get the best experience on our website.

Kalkulator – Dodawanie i Odejmowanie Pisemne – Python

Autor: chmajster 12.09.2022
def konwersja(sliczba, dlugosc):
    liczba = [0 for i in range(dlugosc)]
    dl_sliczba = len(sliczba)
    for i in range(dl_sliczba):
        # liczba[i] = int(sliczba[dl_sliczba - i - 1])
        liczba[dlugosc - i - 1] = int(sliczba[dl_sliczba - i - 1])
    return liczba


def clear(W):
    for i in range(0,len(W)):
         if W[0] == 0:
            del W[0]
    return W


def konwersja1(sliczba, dlugosc):
    liczba = [0 for i in range(dlugosc)]
    dl_sliczba = len(sliczba)
    for i in range(dl_sliczba):
         liczba[i] = int(sliczba[dl_sliczba - i - 1])
        #liczba[dlugosc - i - 1] = int(sliczba[dl_sliczba - i - 1])
    return liczba


def Mnozenie(d1, d2):
    dl = max(len(d1), len(d2))
    A = konwersja(d1, dl)
    B = konwersja(d2, dl)
    obieg = 0
    W = [0 for i in range(dl + dl)]
    for x in range(-1, -1 - dl, -1):
        for i in range(-1, -1 - dl, -1):
            temp = A[i] * B[x]
            if temp>0:
                if(W[i-obieg] + temp % 10) > 10:
                    W[i - obieg] = (W[i - obieg]%10 + temp) %10
                    W[i - 1 - obieg] = W[i - 1 -obieg] + 1
                else:
                    W[i - obieg] = W[i - obieg] + temp % 10
                W[i - 1 -obieg] =  W[i - 1 -obieg] + temp // 10
        obieg = obieg + 1
    if W[0] == 0:
        del W[0]
    return clear(W)

def Mnozenie1(d1, d2):
    dl = max(len(d1), len(d2))
    A = konwersja1(d1, dl)
    B = konwersja1(d2, dl)
    obieg = 0
    W = [0 for i in range(dl + dl)]
    for x in range(dl):
        for i in range(dl):
            temp = A[i] * B[x]
            if temp > 0:
                if (W[i + obieg] + temp % 10) > 10:
                    W[i + obieg] = (W[i + obieg ] % 10 + temp) % 10
                    W[i + 1 + obieg] = W[i + 1 + obieg] + 1
                else:
                    W[i + obieg] = W[i + obieg] + temp % 10
                W[i + 1 + obieg] = W[i + 1 + obieg] + temp // 10
        obieg = obieg + 1
    W = W[::-1]
    if W[0] == 0:
        del W[0]
    return clear(W)


dane1 = "187905681108949"
dane2 = "49"
print("Wynik")

print(Mnozenie1(dane1, dane2))
print(Mnozenie(dane1, dane2))


Tagi: Python
Dodaj komentarz

Search
Categories
O Blogu

Cześć Podróżniku!

Ta strona ma nie być typowym poradnikiem w IT, Głównym jej cel to zapisanie krótkich notatek, które mogą się przydać w codziennym życiu podczas korzystania/konfiguracji różnych urządzeń np. Ustawienia DHCP na Routerze Cisco, Ustawieniu Karty sieciowej na Linuxie itp.

Buy me A coffee
[Empty]

Wszelkie prawa zastrzeżone