找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 1091|回复: 1

[求助] 谁能帮我看看代码问题出在哪里了吗,谢谢

1

主题

1

帖子

1

积分

贫民

积分
1
python-3 发表于 2022-12-23 15:58:33 | 显示全部楼层 |阅读模式
#定义计算最小公倍数的函数
def lcm(a1, a2):
    #  获取最大的数
    if a1 > a2:
        greater = a1
    else:
        greater = a2

    while (True):
        if ((greater % a1 == 0) and (greater % a2 == 0)):
            lcm = greater
            break
        greater += 1

    return lcm

print("""<a1> x + <b1> y = <c1>
<a2> x + <b2> y = <c2>""")
#打印二元一次方程组的基本式

a1=int(input("<a1>="))
b1=int(input("<b1>="))
c1=int(input("<c1>="))
#输入<a1><b1><c1>的值

print("               ")

a2=int(input("<a2>="))
b2=int(input("<b2>="))
c2=int(input("<c2>="))
#输入<a2><b2><c2>的值

#开始计算
y=int((c1*lcm (a1,a2) - c2*lcm (a1,a2)) / (b1*lcm (a1,a2) - b2*lcm (a1,a2)))
x=int((c1 - b1*y) / a1)
#计算xy的值

print(x)
print(y)
#打印xy的值


回复

使用道具 举报

0

主题

1

帖子

1

积分

贫民

积分
1
594Jerry 发表于 2023-4-10 15:00:48 | 显示全部楼层
# 使用欧几里得算法计算最大公约数
def **(a, b):
    if b == 0:
        return a
    else:
        return **(b, a % b)

# 使用最大公约数计算最小公倍数
def lcm(a, b):
    return a * b // **(a, b)

print("""<a1> x + <b1> y = <c1>
<a2> x + <b2> y = <c2>""")

a1 = int(input("<a1>="))
b1 = int(input("<b1>="))
c1 = int(input("<c1>="))

a2 = int(input("<a2>="))
b2 = int(input("<b2>="))
c2 = int(input("<c2>="))

# 检查b1和b2是否相等
if b1 == b2:
    print("Error: b1 and b2 are equal, the equation has no unique solution.")
else:
    # 计算x和y的值
    lcm_a = lcm(a1, a2)
    y = int((c1 * lcm_a - c2 * lcm_a) / (b1 * lcm_a - b2 * lcm_a))
    x = int((c1 - b1 * y) / a1)

    # 输出x和y的值
    print("x =", x)
    print("y =", y)

优化后的代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表