首页 > 解决方案 > 快速控制流计数与倍数

问题描述

编写一个函数,打印从 1 到 100 的数字。但是对于三的倍数打印“x”而不是数字,对于五的倍数打印“y”。对于同时是三和五的倍数的数字,打印“z”。

作为一名学生,我曾被提出过这个问题,并且在试图弄清楚如何将倍数从数字切换到相应的单词时遇到了麻烦。在这个意义上,我将其放置为“x、y 和 z”。

我可以将函数计数为 100,只是不知道如何首先定位倍数。之后,将它们转换为单词而不是数字。这就是我到目前为止所拥有的。

func count(from:Int, to:Int = 100){for i in from...to{print(i)}}

感谢您提前提供任何帮助!如果您还可以解释为什么它会以这种方式工作,我们将不胜感激!还在学习!

标签: swift

解决方案


欢迎来到 SO。这是“嘶嘶声”的变体。

你可以map()为此使用一个函数。您将每个数字映射到一个字符串:非“特殊”的数字将映射到它们的等效字符串,而“特殊”的数字将映射到它们的替换。switch 语句将是选择“特殊”数字的好方法。

或者,您可以使用 for 循环和多部分 if 语句:

for number in 1...100 {
   //if statements
}

您可以使用模 ( %) 运算符判断一个数字是否可以被另一个数字整除:(number % 3 ==如果一个数字可以被 3 整除,则为真。)

这不是代码编写服务。看看你能不能解决。


推荐阅读