From ac43b36f9732005921ef7f303ffa669fe2c6ae03 Mon Sep 17 00:00:00 2001 From: Paulo Custodio Date: Tue, 24 Sep 2024 22:11:46 +0100 Subject: Add Python solution to challenge 146 --- challenge-146/paulo-custodio/python/ch-2.py | 42 +++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 challenge-146/paulo-custodio/python/ch-2.py (limited to 'challenge-146/paulo-custodio/python/ch-2.py') diff --git a/challenge-146/paulo-custodio/python/ch-2.py b/challenge-146/paulo-custodio/python/ch-2.py new file mode 100644 index 0000000000..a355bd9517 --- /dev/null +++ b/challenge-146/paulo-custodio/python/ch-2.py @@ -0,0 +1,42 @@ +#!/usr/bin/env python3 + +# Challenge 146 +# +# Consider the following Curious Fraction Tree: +# +# +# Curious Fraction Tree +# +# +# You are given a fraction, member of the tree created similar to the above sample. +# +# Write a script to find out the parent and grandparent of the given member. +# +# Example 1: +# Input: $member = '3/5'; +# Output: parent = '3/2' and grandparent = '1/2' +# Example 2: +# Input: $member = '4/3'; +# Output: parent = '1/3' and grandparent = '1/2' +# +# Solution: +# for node a/b, the children are a/(a+b) and (a+b)/b + +import sys + +def parent(a, b): + if a / b < 1: # a/(a+b) + parent_a = a + parent_b = abs(b - a) + else: # (a+b)/b + parent_a = abs(b - a) + parent_b = b + return parent_a, parent_b + +input_value = sys.argv[1] +a, b = map(int, input_value.split('/')) +print(f"{a}/{b} -> ", end="") +a, b = parent(a, b) +print(f"{a}/{b} -> ", end="") +a, b = parent(a, b) +print(f"{a}/{b}") -- cgit