やってみようと思って。
今まで言葉だけ知ってて、でも何かは知らんくて。
プログラミングしっかりやりたいなと思ってる今、試してみる価値はあるやろうと。
さわれる言語が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とかループを使わない
そんなレベルにはならなくて良いかなぁ・・。
きっと「理解するのに時間がかかるコード」なんやろうし・・。