🍃このブログは移転しました。
3秒後、自動的に移動します・・・。

Fizz-Buzz問題ってやつを

やってみようと思って。

今まで言葉だけ知ってて、でも何かは知らんくて。
プログラミングしっかりやりたいなと思ってる今、試してみる価値はあるやろうと。

さわれる言語がJavaScriptくらいしかないのでJavaScriptで。

FizzBuzzって

最初のプレイヤーは「1」と数字を発言する。
次のプレイヤーは直前のプレイヤーの次の数字を発言していく。
ただし、3で割り切れる場合は 「Fizz」、
5で割り切れる場合は 「Buzz」、
両者で割り切れる場合は 「Fizz Buzz」を数の代わりに発言しなければならない。

ルールはわかった!

最初に思いついたのは

var FizzBuzz = function(len){
    var s = 1, t = '';
    for(;s<=len;s++){
        if(s%3 === 0 && s%5 === 0){
            t = 'FizzBuzz';
        }else if(s%5 === 0){
            t = 'Buzz';
        }else if(s%3 === 0){
            t = 'Fizz'
        }else{
            t = s;
        }
        document.write(t +'<br>');
    }
};

FizzBuzz(100);

一応、結果としてはあってるぽい。

もちょっとそれらしく

var FizzBuzz = function(p1, p2, len){
    for(var s = 1,t = '';s<=len;s++){
        t =  (s%3 === 0) ? p1 : '';
        t += (s%5 === 0) ? p2 : '';
        t =  (t === '' ) ? s :  t;
        document.write(t+'<br>');
    }
};

FizzBuzz('Fizz', 'Buzz', 100);

なんか実は

世の天才ぷろぐらまーな皆さんはただ問題を解くだけでなく、以下の縛りプレイをしてるらしい。

  • 剰余を使わない
  • forとかループを使わない

そんなレベルにはならなくて良いかなぁ・・。
きっと「理解するのに時間がかかるコード」なんやろうし・・。