【问题标题】:Print the last result before 0打印 0 之前的最后一个结果
【发布时间】:2020-12-28 12:01:59
【问题描述】:

我正在使用 python。 我有这个代码:

def EucAlg(x, y):
    mod = x%y
    print (mod)
    while x % y != 0:
        print (y%(mod))
        mod = y%(mod)

当“mod = 0”时,我只想打印 0 之前的最后一个数字

EucAlg(1112,695)

【问题讨论】:

  • 我不确定我理解你所说的 0 之前的最后一个数字是什么意思。你能提供一个示例输入和预期输出吗?
  • 你的意思是mod变成0之前的最后一个x或y?

标签: python printing skip


【解决方案1】:

您并不真的需要所有这些代码。您可以只跟踪xy 并在y 为零时中断。它使算法背后的思想更加清晰:

def EucAlg(x, y):
    while y != 0:
        x, y = y, x % y
    print (x)  # consider returning x rather than printing it


EucAlg(1112,695)
# 139

EucAlg(695,1112)
# 139

EucAlg(10,5)
# 5

EucAlg(13,11)
# 1

【讨论】:

  • 感谢您的帮助和一些高质量的问题,当然还有答案。 @The Grand J. bY 0 我的意思是,“mod”变成了 0。例如,如果你解释 --- x, y = y, x % y --- 是什么意思,我会很高兴?
  • @HazloBob 这只是分配值。 x 变成 yy 变成 x % y,这就是 Euclid 版本需要做的所有事情。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-25
  • 1970-01-01
  • 2022-12-10
  • 2021-01-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多