【问题标题】:FizzBuzz also printing numbers that contain3 and 5FizzBu​​zz 还打印包含 3 和 5 的数字
【发布时间】:2019-06-03 01:06:09
【问题描述】:

我一直在尝试使用 Python 来了解 FizzBu​​zz 问题,我发现它相当容易,因此决定增加一层额外的复杂性。

我的问题是:我怎样才能让程序也打印“Fizz”或“Buzz”来打印任何同时包含数字 3 或 5 的数字。

我不确定是否应该继续将其转换为字符串,然后将其拆分并比较字符串,或者我是否缺少可以更有效地解决此问题的函数

我当前的代码如下所示:

for fizzBuzz in range(0, 100):
    if fizzBuzz % 5 == 0 and fizzBuzz % 3 == 0:
        print('FizzBuzz')
    elif fizzBuzz % 5 == 0:
        print('Buzz')
    elif fizzBuzz % 3 == 0:
        print('Fizz')
    else:
        print(fizzBuzz)

【问题讨论】:

  • 数字不包含数字,它们只是数字。我认为您的意思是谈论包含特定数字的数字的表示,例如,字符串文字"52" 包含"5"。请注意,这取决于表示中使用的基数:以十六进制打印 52,我们得到的是 "34"

标签: python fizzbuzz


【解决方案1】:

执行此操作的最简单和最直接的方法之一是将数字转换为字符串。

解决方案:

for fizzBuzz in range(0, 100):
  three = fizzBuzz % 3 == 0 or "3" in str(fizzBuzz)
  five = fizzBuzz % 5 == 0 or "5" in str(fizzBuzz)
  if three and five:
    print("FizzBuzz")
  elif five:
    print("Buzz")
  elif three:
    print("Fizz")
  else:
    print(fizzBuzz)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-06
    • 2012-02-21
    • 2018-07-18
    相关资源
    最近更新 更多