找到最大奇数的最佳方法

Posted

技术标签:

【中文标题】找到最大奇数的最佳方法【英文标题】:Best way to Find the biggest Odd number 【发布时间】:2020-04-20 05:34:21 【问题描述】:

在这里,我想从给定的一组数字中找到最大的奇数,如果那里没有奇数,则相应地打印效果。在这里,我将偶数的值设置为零,然后将其与其余部分进行比较,这是正确的逻辑吗?我得到了想要的结果,但是具有偶数值的变量的值被设置为零。谢谢。

 x, y, z = 45, 61, 82

if x%2==1 or y%2==1 or z%2==1:
    if x%2==0:
        x = 0
    if y%2==0:
        y = 0
    if z%2==0:
        z = 0
    if x>y and x>z:
        print(x)
    elif y>z:
        print(y)
    else:
        print(z)
else:
    print("No odd.")

>>> 61

【问题讨论】:

【参考方案1】:

这是一种更简单的查找赔率的方法:

odd = [i for i in [45,61,82] if i%2 != 0]

现在找到最大值:

max(odd)

如果所有都是偶数,这可能会引发错误。 所以:

try:
    max(i for i in [45,61,82] if i%2 !=0)
except:
    print("all are even")

【讨论】:

如果 OP 想要保留xyz,我会为了他们的利益指出可以使用[x, y, z],并且它们的值不会改变。 (PS:很好,print(max(...)) 所以我们看到了一些东西!)【参考方案2】:

您可以创建一个使用 for 循环来循环数字的函数,并在 for 循环之外的变量中跟踪迄今为止最大的奇数。然后你可以打印出变量,或者如果变量仍然是你初始化它的那个,打印“Noodd”。

def largest_odd(numbers):
  largest_so_far = 0
  for num in numbers:
    if num % 2 == 1 and num > largest_so_far:
      largest_so_far = num

  if largest_so_far == 0:
    print("No odd.")
  else:
    print(largest_so_far)

【讨论】:

以上是关于找到最大奇数的最佳方法的主要内容,如果未能解决你的问题,请参考以下文章

找到不大于 A 的最大数的最有效方法,该数可被 B 整除 [关闭]

Python,最大奇数

期望最大化问题 - 如何在数据中找到最佳高斯数

读入一组整数到数组中,设计一程序,找出最大偶数和最大奇数并输出

给定一些输入,找到图边的最佳权重以最大化一些输出

在日志表上按顺序使用多个连接优化 MySQL 查询以找到最大差异(最佳记录)