【问题标题】:Remove Common Factor from the expression从表达式中删除公因子
【发布时间】: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 = 3184/8 = 23

标签: python python-3.x logic


【解决方案1】:

您可以通过使用以下函数轻松找到公因数:

def commonfactor(a,b): 
if(b==0): 
    return a 
else: 
    return commonfactor(b,a%b) 
print(commonfactor(24,184))

在结束计算后,您可以找到公因数,然后将 24,184 除以该公因数

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-03
    • 1970-01-01
    相关资源
    最近更新 更多