2

これは面接でよくある質問だと聞きましたが、ここで何が違うのか、ご意見をお聞かせください。

for(i in 1:100){
  if(i%15==0){
    print('fizzbuzz')
  } else 
      if (i%3==0){
        print("fizz")
      } else 
        if (i%5==0) {
          print("buzz")
        } else 
          (print(i))
        }
      }
4

3 に答える 3

4

中括弧を別の場所に配置すると、演算子 --%%の代わりに. を修正する必要があります%

for(i in 1:100) {
    if(i%%15==0){
        print('fizzbuzz')
    } else if (i%%3==0){
        print("fizz")
    } else if (i%%5==0) {
        print("buzz")
    } else {
        print(i)
    }
} 

しかし、基本的な考え方は健全です。最初に特別な「fizzbuzz」ケースを取り出してから、残りの (排他的な) ケースに対処します。

最初の 16 件の結果は次のとおりです。

edd@max:~$ r /tmp/fizzbuzz.R | head -16
[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"
[1] 16
edd@max:~$ 
于 2014-08-31T20:18:41.027 に答える