今そこにあるFizzBuzz問題
私と同様、この著者は、プログラミングの仕事への応募者200人中199人はコードがまったく書けないということで苦労している。繰り返すが、彼らはどんなコードも書けないのだ。
(中略)1から100までの数をプリントするプログラムを書け。ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。
ちゃんとしたプログラマであれば、これを実行するプログラムを2分とかからずに紙に書き出せるはずだ。怖い事実を聞きたい? コンピュータサイエンス学科卒業生の過半数にはそれができないのだ。自称上級プログラマが答えを書くのに10-15分もかかっているのを見たこともある。
いくら何でも、200人中199人もコードが書けないってのは、言いすぎというか、ネタなんじゃないのという気がするけど。
FizzBuzz問題は、気になったんで、オイラも、ちょっとJavaでコードを書いてみた。
public class FizzBuzz { public static void main( String[] args ) { for ( int i = 1 ; i <= 100 ; i++) { if ( i % 15 == 0) { System.out.println("FizzBuzz"); } else if ( i % 3 == 0) { System.out.println("Fizz"); } else if ( i % 5 == 0) { System.out.println("Buzz"); } else { System.out.println(i); } } } }
一応、コンパイルしてみて、実行させてみたから、多分あってると思うけど。なんか、もうちょっとスマートな解法があるような気がしてならないな。しかし、2分以内には、完成させる事はできなかった。orz