首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么我的“最大公分母”程序不能输出正确的信息?

为什么我的“最大公分母”程序不能输出正确的信息?
EN

Stack Overflow用户
提问于 2018-06-07 07:57:06
回答 1查看 61关注 0票数 0

这是我用来确定“两个数的最大公分母”的程序

代码语言:javascript
复制
integer1 = int(input("Enter an integer:"))
integer2 = int(input("Enter an integer:"))

if integer1 > integer2:
    x = integer1
    while integer1%x and integer2%x !=0:
        x = x - 1

elif integer2 > integer1:
    x = integer2
    while integer1%x and integer2%x !=0:
        x = x - 1

print("the gcd of",integer1,"and",integer2,"is",x)

例如,当我输入值"25“和"50”时,我的程序会说GCD是50,这是不正确的。

EN

回答 1

Stack Overflow用户

发布于 2018-06-07 08:00:26

代码语言:javascript
复制
x = min(integer1, integer2)
while integer1 % x or integer2 % x:
    x = x - 1

  • 避免重复您的代码,只需设置x,然后应用不能从最小值开始而不是从最大
  • 开始的逻辑即可。要接受x,它应该同时满足integer1 % x == 0integer2 % x == 0,因此while的停止条件应为D13(并且D14在这里与整数到布尔的转换是多余的,因此您可以跳过它们)H215 H116在常规类型的表达式中的行为方式可能与您可能认为的不同,“正确”的方式是a == 0 and b == 0.
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50731225

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档