Fun little problem! Here's my solution, using the way we were taught to add fractions at school 😋 (I added in fraction reduction for extra spice!)
frommathimportgcddefreduce_fraction(fraction):hcf=gcd(fraction[0],fraction[1])return[fraction[0]//hcf,fraction[1]//hcf]defsum_of_fractions(fractions):total=fractions.pop()whilelen(fractions)>0:next=fractions.pop()bottom=total[1]*next[1]topLeft=next[1]*total[0];topRight=next[0]*total[1]total=[topLeft+topRight,bottom]returnreduce_fraction(total)test=[[11,2],[3,4],[5,4],[21,11],[12,6]]fraction_sum=sum_of_fractions(test[:])result=round(fraction_sum[0]/fraction_sum[1])print(f'The sum of {test} fractions is {fraction_sum}, which is {result} to the nearest integer')
Fun little problem! Here's my solution, using the way we were taught to add fractions at school 😋 (I added in fraction reduction for extra spice!)
Interesting method, just learn a syntax(test[:]) from you. Also good exercise for me to read long code from others.