雨滴

雨滴

简单

简介

雨滴是 FizzBuzz 挑战的稍微复杂一点的版本,这是一个经典的面试题。

说明

你的任务是把一个数字转换成它对应的雨滴声。

如果给定的数字:

  • 能被 3 整除,就在结果中加上 "Pling"。
  • 能被 5 整除,就在结果中加上 "Plang"。
  • 能被 7 整除,就在结果中加上 "Plong"。
  • 不能被 3、5 或 7 整除,结果就应该是这个数字的字符串形式。

示例

  • 28 能被 7 整除,但不能被 3 或 5 整除,所以结果是 "Plong"。
  • 30 能被 3 和 5 整除,但不能被 7 整除,所以结果是 "PlingPlang"。
  • 34 不能被 3、5 或 7 整除,所以结果是 "34"。
Note

判断一个数能否被另一个数整除,一种常见做法是比较余数或模是否为零。 大多数语言都为其中一种(或两种)提供了运算符或函数。

本练习在 Python 中的结构

本练习最好用 Python 的 %(求模)运算符来解决,它返回正整数除法的余数。 它有一个等价的方法,即运算符模块中的 operator.mod()。

Python 在数学模块中还提供了其他一些“求余”方法。 math.fmod() 的行为与 % 类似,但它操作的是浮点数。 math.remainder() 用一种“最接近零的一步”算法来计算除法的余数。 我们鼓励你熟悉这些方法,但它们都不会与 % 的结果完全一致,因此不建议在本练习中使用。

内置函数 divmod() 在用于两个正整数时,也能得到与 % 一致的余数,但它返回的是一个需要解包的 tuple。

通过 GitHub 编辑 链接将在新窗口或新标签页中打开
Python Exercism

准备好开始 雨滴 了吗?

注册 Exercism,借助 17 个概念146 个练习 和真人导师指导,学习并掌握 Python,全部免费。

深入探索 雨滴!

探索各种解法:函数式管道、矩阵乘法、用宏实现的预计算查表法、面向对象方法、Python 和 TCL 的一些精彩用法,以及一个企业版。