Menu
CoddyTech

加入特别规则

本课属于 Coddy R 学习旅程的“基础知识”单元。第 55 课,共 78 课。

challenge icon

挑战

简单

在上一课中,你创建了一个 FizzBuzz 程序,它使用默认除数 3 和 5 遍历数字。现在,通过使用默认参数让除数可以自定义,为程序增加一点变化。

修改你的 fizzbuzz 函数,使其接受三个参数:

  • n - 要检查的数字(必需)
  • fizz_divisor - “Fizz”的除数(可选,默认值为 3)
  • buzz_divisor - “Buzz”的除数(可选,默认值为 5)

函数检查是否能整除时,应使用这些自定义除数,而不是硬编码的值。

你将收到三行输入:

  1. 上限 n
  2. Fizz 的除数
  3. Buzz 的除数

从 1 循环到 n,并使用全部三个参数调用更新后的 fizzbuzz 函数。打印每个结果。

例如,输入为:

10
2
3

输出应为:

[1] "1"
[1] "Fizz"
[1] "Buzz"
[1] "Fizz"
[1] "5"
[1] "FizzBuzz"
[1] "7"
[1] "Fizz"
[1] "Buzz"
[1] "Fizz"

如果输入为:

15
3
5

输出应为:

[1] "1"
[1] "2"
[1] "Fizz"
[1] "4"
[1] "Buzz"
[1] "Fizz"
[1] "7"
[1] "8"
[1] "Fizz"
[1] "Buzz"
[1] "11"
[1] "Fizz"
[1] "13"
[1] "14"
[1] "FizzBuzz"

亲手试试

# Read input
con <- file("stdin", "r")
n <- as.numeric(suppressWarnings(readLines(con, n = 1)))

# Function from previous lesson
check_divisible <- function(number, divisor) {
  return(number %% divisor == 0)
}

# Create the fizzbuzz function
fizzbuzz <- function(n) {
  if (check_divisible(n, 3) && check_divisible(n, 5)) {
    return("FizzBuzz")
  } else if (check_divisible(n, 3)) {
    return("Fizz")
  } else if (check_divisible(n, 5)) {
    return("Buzz")
  } else {
    return(as.character(n))
  }
}

# Loop through numbers from 1 to n and print the result
for (i in 1:n) {
  print(fizzbuzz(i))
}

基础知识中的所有课

自己练习: R 在线编译器