Proszę o pomoc z pythona,
Napisz jednoparametrową funkcję dodumki. Parametr jest listą ułamków, a wartością funkcji jest
liczba zapisana za pomocą listy będąca sumą liczb podanych jako parametr. Ponadto liczba mieszana,
która jest wynikiem tej funkcji powinna być zapisany w postaci jednoznacznej – część całkowita (o ile
istnieje) oraz ułamek właściwy (o ile istnieje - w postaci nieskracalnej).
Każdą liczbę mieszaną można zapisać według następującej zasady:
jeśli jest to liczba całkowita – jako lista jednoelementowa np. 2 będzie zapisana jako [2]
jeśli nie jest to liczba całkowita jako lista:
o dwuelementowa, jeśli część całkowita jest równa 0, gdzie pierwszym elementem jest licznik
ułamka, drugim mianownik np. 1/3 będzie zapisana jako [1, 3],
o trzyelementowa – w pozostałych przypadkach, pierwszym elementem jest część całkowita,
drugim licznik, trzecim mianownik.
Przykłady:
dodumki [[1, 3], [1, 2] ] daje w wyniku [5, 6]
dodumki [[1, 1000000], [1, 1000000] ] daje w wyniku [1, 500000]
dodumki [[1, 2], [3, 4], [1, 4]] daje w wyniku [1, 1, 2]
result = [0,0,0]
for i in fractions:
if len(i) == 1:
result[0] += i[0]
if len(i) == 2:
if result[1] == 0 and result[2] == 0:
result[1] = i[0]
result[2] = i[1]
else:
result[1] = result[1]*i[1]+result[2]*i[0]
result[2] = result[2]*i[1]
if len(i) == 3:
result[0] += i[0]
if result[1] == 0 and result[2] == 0:
result[1] = i[1]
result[2] = i[2]
else:
result[1] = result[1]*i[2]+result[2]*i[1]
result[2] = result[2]*i[2]
while result[1] >= result[2]:
result[0] += 1
result[1] -= result[2]
a = result[1]
b = result[2]
if (a == 0 or b == 0):
a = 1
b = 1
while a != b:
if a > b:
a = a - b
else:
b = b - a
result[1] /= a
result[2] /= a
if result[1] == 0:
result = [result[0]]
elif result[0] == 0:
result = [result[1],result[2]]
return result