【发布时间】:2021-02-28 18:33:51
【问题描述】:
在这个问题中,我必须从表达式(9+10+5)、(4+2+178)中删除公因子 表达式的第一部分是 (9+10+5)。计算结果为 24。表达式的第二部分是 (4+2+178),计算结果为 184,去除 24 和 184 的所有公因数,结果为 3/23 .
在获得 24 和 184 后我被卡住了,任何人都知道逻辑请帮忙!!
def solution(expression):
left_sum=0
right_sum=0
for i in range(len(expression)):
if (expression[i]=='/'):
first=expression[:i]
second= expression[i+1:]
left = eval(first)
# print(left)
right= eval(second)
# print(right)
left_add=[]
right_add=[]
i=1
for i in range(1,min(left,right)):
if(left%i==0 and right %i==0):
left= left//i
right= right//i
# print(i)
# print(right)
solution("(9+10+5)/(4+2+178)")
【问题讨论】:
-
您是否任何努力寻找一种算法来计算 2 个数字的公因数?
-
我想你想看看
math.gcd(最大公约数)。所以math.gcd(24, 184)返回 8、24/8 = 3、184/8 = 23。
标签: python python-3.x logic