写一个函数,打印从1到100的数字。但是对于三个数字的倍数打印“ x”而不是数字,对于五个数字的倍数打印“ y”。对于三个和五个的倍数的数字,请打印“ z”。
我是作为一个学生提出这个问题的,在尝试弄清楚如何将倍数从数字转换为相应的单词时遇到了麻烦。在这种意义上,我将其放置为“ x,y和z”。
我可以使函数计数到100,只是不确定如何首先确定倍数。之后,将它们转换为单词而不是数字。这就是我到目前为止所拥有的。
func count(from:Int,to:Int = 100){for i in from ... to {print(i)}}
谢谢您的任何帮助!如果您还可以解释其工作方式的原因,将不胜感激!还在学习!
答案 0 :(得分:0)
欢迎来到SO。 这是“嘶嘶声”的一种变体。
您可以为此使用map()
函数。您将每个数字映射到一个字符串:非“特殊”的数字将映射到其等效的字符串,而“特殊”的数字将映射到其替换。使用switch语句是选择“特殊”数字的好方法。
或者,您可以使用for循环和多部分if语句:
for number in 1...100 {
//if statements
}
您可以使用模(%
)运算符来判断一个数字是否可被另一个数字整除:(如果一个数字可被3整除,则number % 3 ==
是正确的。
这不是代码编写服务。看看是否可以解决。
答案 1 :(得分:-1)
请务必先阅读以下内容: https://docs.swift.org/swift-book/LanguageGuide/ControlFlow.html
如果只需要打印结果:
for i in 1...100 {
if i % 3 == 0 && i % 5 == 0 {
print("z")
} else if i % 3 == 0 {
print("x")
} else if i % 5 == 0 {
print("y")
} else {
print("\(i)")
}
}
或相同的解决方案,但带有开关:
for i in 1...100 {
switch (i % 3 == 0, i % 5 == 0) {
case (true, true): print("z")
case (true, _): print("x")
case (_, true): print("y")
default: print("\(i)")
}
}