1  Even or Odd

8kyu Tantangan #1/366 - 15 Feb 2024

https://www.codewars.com/kata/53da3dbb4a5168369a0000fe

1.1 Instruction

Create a function that takes an integer as an argument and returns "Even" for even numbers or "Odd" for odd numbers.

1.2 YouTube Video

1.3 Solution Code

Solusi bar-bar

even_or_odd <- function(n) {
  ifelse(abs(n/2 - as.integer(n/2)) == 0.5, "Odd", "Even")
}

Solusi simple

even_or_odd <- function(n) {
  #  %% operator modulo
  ifelse(n %% 2 == 1, "Odd", "Even")
}
even_or_odd <- function(n) c("Even", "Odd")[n %% 2 + 1]

1.4 Test

library(testthat)
test_that('even_or_odd(1) returns "Odd"', {
  expect_equal(even_or_odd(1), "Odd")
})
Test passed 🎉
test_that('even_or_odd(2) returns "Even"', {
  expect_equal(even_or_odd(2), "Even")
})
Test passed 🌈
test_that('even_or_odd(0) returns "Even"', {
  expect_equal(even_or_odd(0), "Even")
})
Test passed 🥇
test_that('even_or_odd(-1) returns "Odd"', {
  expect_equal(even_or_odd(-1), "Odd")
})
Test passed 😸
test_that('even_or_odd(-2) returns "Even"', {
  expect_equal(even_or_odd(-2), "Even")
})
Test passed 😸

1.5 Supported by

StarCore Analytics