Menu
Coddy logo textTech

Добавляем изюминку

Часть раздела Основы путешествия по R на Coddy — урок 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))
}

Все уроки раздела Основы