Menu
CoddyTech

加入特别规则

本课属于 Coddy Swift 学习旅程的“基础知识”单元。第 61 课,共 86 课。

challenge icon

挑战

简单

在上一课中,你创建了一个循环,用固定除数 3 和 5,从 1 开始运行 FizzBuzz,直到给定的上限。现在,增加一个变化,让除数可以自定义!

修改你的 fizzBuzz 函数,添加两个参数,用于指定自定义除数:

  • 将函数签名更新为:fizzBuzz(_ number: Int, fizzAt: Int = 3, buzzAt: Int = 5) -> String
  • 检查 "Fizz" 时,用 fizzAt 替代 3
  • 检查 "Buzz" 时,用 buzzAt 替代 5
  • 默认值可以确保未指定除数时,经典 FizzBuzz 仍然有效

你会收到以下输入:

  1. 上限(整数)
  2. "Fizz" 对应的第一个除数(整数)
  3. "Buzz" 对应的第二个除数(整数)

更新你的循环,让它为每个数字都将这些自定义除数传给函数。

例如,如果输入是 10、2 和 3,输出应为:

1
Fizz
Buzz
Fizz
5
FizzBuzz
7
Fizz
Buzz
Fizz

在这个例子中,2 的倍数会输出 "Fizz",3 的倍数会输出 "Buzz",同时是两者倍数的数字(例如 6)会输出 "FizzBuzz"。

如果输入是 15、3 和 5(经典除数),输出应与原始 FizzBuzz 相同:

1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz

亲手试试

func fizzBuzz(_ number: Int) -> String {
    if number % 3 == 0 && number % 5 == 0 {
        return "FizzBuzz"
    } else if number % 3 == 0 {
        return "Fizz"
    } else if number % 5 == 0 {
        return "Buzz"
    } else {
        return String(number)
    }
}

// Read input
let limit = Int(readLine()!)!

// Loop from 1 to limit and print the result for each number
for number in 1...limit {
    print(fizzBuzz(number))
}

基础知识中的所有课

自己练习: Swift 在线编辑器