こんつあ
一段と寒いですな。風邪とかひいてないか?
フトコロも寒いですな。高熱出して寝込んでるな。サイフ。
そんなことはどうでもよくてね?
あれあるじゃん。3の倍数でFizzとかのやつ。FizzBuzz。知らない?
せんだ
みつお
ナハナハ
て感じ。嘘じゃないよ?ほら。
なんか突然流行りだしてね?プログラム的なやつでFizzBuzz出力するの。
FizzBuzz問題ってやつね。Wikipediaから引用。
このゲームをコンピュータ画面に表示させるプログラムとして作成させることで、コードが書けないプログラマ志願者を見分ける手法をJeff AtwoodがFizzBuzz問題 (FizzBuzz Question) として提唱した。その提唱はインターネットの様々な場所で議論の対象になっている。
「IT企業の社員なら書けるでしょ。普通。」
「いや、IT企業の社員じゃないんですが。」
「まさかググらないと書けないの?」
「ぐぬぬ。こうか?」
Sub Main()
FizzBuzzIterator(Enumerable.Range(1, 100)).ToList().ForEach(AddressOf Console.WriteLine)
End Sub
Private Iterator Function FizzBuzzIterator(source As IEnumerable(Of Integer)) As IEnumerable(Of String)
Dim FizzEnumerator As IEnumerator(Of String) = FizzIterator.GetEnumerator()
Dim BuzzEnumerator As IEnumerator(Of String) = BuzzIterator.GetEnumerator()
For Each item In source
FizzEnumerator.MoveNext()
BuzzEnumerator.MoveNext()
Dim result As String = FizzEnumerator.Current & BuzzEnumerator.Current
Yield If(String.IsNullOrEmpty(result), item.ToString(), result)
Next
End Function
Private Iterator Function FizzIterator() As IEnumerable(Of String)
While True
Yield String.Empty
Yield String.Empty
Yield "Fizz"
End While
End Function
Private Iterator Function BuzzIterator() As IEnumerable(Of String)
While True
Yield String.Empty
Yield String.Empty
Yield String.Empty
Yield String.Empty
Yield "Buzz"
End While
End Function
「おまえバカなの?」
「そうかもしんない。」
※3の倍数のときにFizzが出るんじゃなくて、「3個目がFizzになっちゃった」感じ?
きっとあれだ。最初に「せんだ・みつお・ナハナハ」とか言ってるからだなwww
※12/27変更 なんか、なむなむ感が薄かったので、ちょっと書き換えた。