<- function(n) {
even_or_odd ifelse(abs(n/2 - as.integer(n/2)) == 0.5, "Odd", "Even")
}
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
Solusi simple
<- function(n) {
even_or_odd # %% operator modulo
ifelse(n %% 2 == 1, "Odd", "Even")
}
<- function(n) c("Even", "Odd")[n %% 2 + 1] even_or_odd
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 😸