変形Fizz-Buzz問題
Posted feedbacks - R
素直に書いてみました。 Rならifすら必要ありませんね。
1 2 3 4 5 6 7 | FizzBuzz <- function(n=20){
v <- rep("hoge", n)
v[!1:n%%3] = "Fizz"
v[!1:n%%5] = "Buzz"
v[!1:n%%15] = "FizzBuzz"
cat(paste(1:n, v, sep=":"), sep="\n")
}
|
馬鹿馬鹿しい解を一つ
1 2 3 4 | FizzBuzz <- function(n) {
v <- rep(c("hoge", "hoge", "Fizz", "hoge", "Buzz", "Fizz", "hoge", "hoge", "Fizz", "Buzz", "hoge", "Fizz", "hoge", "hoge", "FizzBuzz"), n%/%15+1)[1:n]
print(v)
}
|
出題意図が今一不明ですが,else を使うなというだけなら,以下のように書けるが,ifすら使う必要がないというkkobayashiさんの意見はごもっとも。 else を使わないというのは,なんの制約にもならないと思うのだが。。。
1 2 3 4 5 6 7 | for (i in 1:20) {
str <- "hoge"
if (i %% 3 == 0) str <- "Fizz"
if (i %% 5 == 0) str <- "Buzz"
if (i %% 15 == 0) str <- "FizzBuzz"
cat(i, ":", str, "\n")
}
|
if も else も要らない
1 2 3 | FizzBuzz <- function(n) {
for (i in 1:n) cat(i,":",c("hoge", "Fizz", "Buzz", "FizzBuzz")[(!(i%%3))+(!(i%%5))*2+1],"\n")
}
|
1 | junk<- sapply(1:20, function(i) cat(i, ":", c("FizzBuzz", "hoge", "hoge", "Fizz", "hoge", "Buzz", "Fizz", "hoge", "hoge", "Fizz", "Buzz", "hoge", "Fizz", "hoge", "hoge")[i%%15+1], "\n"))
|


raynstard
#3758()
Rating0/2=0.00
[ reply ]