1 名前:(´・ω・`) ◆Hc1VAagKMg [2008/04/29(火) 20:06:06 ] 1から100までの数をプリントするプログラムを書け。 ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。 www.aoky.net/articles/jeff_atwood/why_cant_programmers_program.htm 言語自由
332 名前:325 mailto:sage [2011/01/18(火) 15:33:00 ] >>331 あれって、総当り方式じゃん。左側か右側かの壁伝ってくんだっけ? >>324 の問題って、なんか、「求職者を見下したい」感がヒシヒシ伝わってきて嫌。 プログラムって、もっと、大らかに、何日もかけて、じっくり楽しむべきものなんだよね。 3時間とか、時間区切ってコーディングするのは、仕事でもない限り、邪道。 マイコンロボを試行錯誤して動かしたりとか、何日も考えてパズルの最適アルゴリズムを見出したりとか。
333 名前:仕様書無しさん mailto:sage [2011/01/18(火) 20:42:37 ] >あれって、総当り方式じゃん。左側か右側かの壁伝ってくんだっけ? だから、それだと出口が内部に有ると駄目だし、ループしてる柱みたいな 場所が有ると永久ループ。 一応、自分が通った経路を記憶しておいてマッピングしながら移動する のだが、タイヤのスリップとかセンサの誤検知とか有るので、信頼度の 重み付けしながらファジーにマッピングして行く。 汚部屋と言う名の迷路を掃除するロボット、ルンバも作れなさそうだな。 中国製ランダムウォークのパチ物に負けるぞ。
334 名前:仕様書無しさん mailto:sage [2011/02/06(日) 02:07:41 ] >>324 ためしにやってみた hibari.2ch.net/test/read.cgi/tech/1215352849/294 >>325->>330 きにすんな 幅優先探索という言葉は知っていてもロジックを忘れてしまったから 解くのに3時間ぐらいかかった ところで何のフリーソフト作ってる? すごく気になるから教えて 使ってみたい
335 名前:仕様書無しさん mailto:sage [2011/02/08(火) 23:42:25 ] >>325 幅優先探索の場合、計算時間より計算空間の方が先に破綻するんじゃ ないかな。特にRAMの容量に限りの有る組込み制御の場合。 8bit時代は、オセロとか将棋も深さ優先探索してた。例外は森田和郎 ぐらいで、これもSSS*探索とαβ探索のハイブリッド。
336 名前:仕様書無しさん mailto:sage [2011/03/07(月) 11:10:02.94 ] なつかしい話題発見。 全セル分のワークと若干のキューが確保できればいいんだから そんなにメモリ圧迫するってほどでもないような。 といっても対象フィールドの広さにもよるだろうが、 例の出題程度の広さだったら破綻の心配はまずしなくていいでしょう。 各セルごとにゴール、スタート、障害物、未踏地、 既に歩いた地(「来た方向」の保持兼用)の区別がつけばいいので ワークは各セルごとに1バイト(最低4ビット)あれば十分足りるし。 でも深さ優先探索しか知らなかった(書いたことがなかった)ので 試しに解いてみた時にはちょっと手こずってしまった。 ちなみに件の例題では深さ優先探索でも実用時間内に解けてしまう。 これって結構ワナかもな、と思った。
337 名前:仕様書無しさん mailto:sage [2011/03/18(金) 10:49:36.47 ] 空気読まずにCLOSでfizzbuzz, (defgeneric fbzz (%3 %5 n) (:method (%3 %5 n) (print n)) (:method ((%3 fixnum) %5 n) (print 'fizz)) (:method (%3 (%5 fixnum) n) (print 'buzz)) (:method ((%3 fixnum) (%5 fixnum) n) (print 'fizzbuzz))) (defun fizz-buzz (n) (fbzz (/ n 3) (/ n 5) n)) (loop for i from 1 to 100 do (fizz-buzz i))
338 名前:プログラマ志望の経済学部4年生 mailto:sage [2011/06/10(金) 16:54:07.54 ] プログラミング始めて3週間です、どうですか? #include <stdio.h> int main(void) { int a; for (a = 1; a <= 100; a++) { if (a % 3 == 0 && a % 5 == 0) printf ("FizzBuzz\n"); else if (a % 3 == 0) printf("Fizz\n"); else if (a % 5 == 0) printf("Buzz\n"); else printf("%d\n", a); } return 0; }
339 名前:仕様書無しさん mailto:sage [2011/06/11(土) 00:06:20.06 ] どうですかって言われても まぁいいんじゃね あえて言えば平凡すぎて面白みがなくてつまらん
340 名前:仕様書無しさん [2011/06/11(土) 03:43:41.34 ] いい機会なんで?演算子を使ってみよう
341 名前:仕様書無しさん mailto:sage [2011/06/11(土) 10:56:59.64 ] まいど = まいど?まいどぉ:まいどぅ
342 名前:仕様書無しさん mailto:sage [2011/06/11(土) 11:19:06.80 ] こうかな int main(void){ char *s[4] = { " ","Fizz","Buzz","FizzBuzz"}; int i; for (i=1;1<=100;i++){ sprintf(s[0],"%d",i) puts(s[(i%5==0)<<1+(i%3==0)]); } } 確認してないからわからんがかなり速の筈 sprintf部分を自分で書けばもっと速くなる
343 名前:仕様書無しさん mailto:sage [2011/06/11(土) 11:31:36.95 ] こうすればもっと早いな int main(void){ char *s[4] = { " ","Fizz","Buzz","FizzBuzz"}; int i, j; for (i=1;1<=100;i++){ j=(i%5==0)<<1+(i%3==0); if(j==0) sprintf(s[0],"%d",i); puts(s[j]); } }
344 名前:仕様書無しさん mailto:sage [2011/06/11(土) 17:32:44.94 ] 無限ループするじゃん。
345 名前:仕様書無しさん mailto:sage [2011/06/11(土) 18:10:12.16 ] 1<=100はともかく、<<演算子の優先順位が+より低いのにハマってるよ。 *2にしても多分同じオブジェクトが出るとは思うけどね。 ↓結果 int main(void){ char *s[4] = { " %d¥n","Fizz¥n","Buzz¥n","FizzBuzz¥n"}; int i; for (i=1;i<=100;i++)printf(s[(!(i%5)<<1)+!(i%3)],i); }
346 名前:仕様書無しさん mailto:sage [2011/06/11(土) 21:04:59.44 ] 確認してないからわからんがかなり速の筈
347 名前:仕様書無しさん mailto:sage [2011/06/11(土) 21:07:23.93 ] Link: codepad.org/OUmFv01u int main(void){ char *s[4] = { " ","Fizz","Buzz","FizzBuzz"}; int i; for (i=1;1<=100;i++){ sprintf(s[0],"%d",i) puts(s[(i%5==0)<<1+(i%3==0)]); } } In function 'main': Line 6: error: expected ';' before 'puts'
348 名前:仕様書無しさん mailto:sage [2011/06/11(土) 21:09:13.71 ] Link: codepad.org/LsWu5lBF int main(void){ char *s[4] = { " ","Fizz","Buzz","FizzBuzz"}; int i, j; for (i=1;1<=100;i++){ j=(i%5==0)<<1+(i%3==0); if(j==0) sprintf(s[0],"%d",i); puts(s[j]); } } Output: Segmentation fault
349 名前:仕様書無しさん mailto:sage [2011/06/12(日) 02:55:39.33 ] FizzBuzzはできて当たり前、がんばるもんじゃないんだけどな。 「どうだっ」みたいな人が会社にいて困った。
350 名前:仕様書無しさん mailto:sage [2011/06/12(日) 12:27:40.95 ] int main(void){ char *p, c[] = " "; char *s[] = { "","Fizz","Buzz","FizzBuzz"}; int i, j, k; s[0] = c; for (i=1;i<=100;i++){ j = ((i%5 == 0)<<1) + (i%3 == 0); if(j==0) { p = c; k = i; if(k >= 100) { *p++ =k/100 +'0'; k =k%100; } if(k >= 10) { *p++ =k/10 +'0'; k =k%10; } *p++ =k +'0'; *p = NULL; } puts(s[j]); } return 0; } 動くようにするとこうだな sprintfはよくわからんのではずしたわ
351 名前:仕様書無しさん mailto:sage [2011/06/12(日) 18:18:48.82 ] 平凡 use strict ; my $m3 = 3 ; my $m5 = 5 ; for( my $n = 1 ; $n <= 100 ; ++$n ) { if( $m3 == $n ) { $m3 += 3 ; if( $m5 == $n ) { $m5 += 5 ; print STDOUT "FizzBuzz\n" ; } else { print STDOUT "Fizz\n" ; } next ; } if( $m5 == $n ) { $m5 += 5 ; print STDOUT "Buzz\n" ; next ; } print STDOUT $n, "\n" ; } exit(0) ; __END__
352 名前:仕様書無しさん mailto:sage [2011/06/13(月) 23:12:21.79 ] 1.可変性 このプログラムが実用になった場合、標準出力以外のものに出すよう変更の必要があると思われるが、簡単にできるよう考慮されているか 倍数が3のみで5なしになったら?逆に両方残したまま7が増えたら?条件変わってもすぐに変更できるか 2.動作速度 十分速いかあるいは速度アップの必要が生じた場合、どこをいじればよいか?具体的に内部でどういう動作が 行われているかわかっているか 等をワシなら気にするな 最初黙っててできた後から上記のような質問してもすぐに対応したら、かなりできる奴だと思うわ
353 名前:仕様書無しさん mailto:sage [2011/06/14(火) 01:46:04.12 ] いや、そもそも「かなりできる」奴か見るためのテストじゃないし。 がんばるもんじゃないったらスレ終わりじゃん。ここマ板だし。 こんな書き方もある、ってお遊びだよ?言わせんな恥ずかしいw
354 名前:仕様書無しさん mailto:sage [2011/06/15(水) 00:34:09.43 ] ♪フィズバズフィズバズよよいがよい ♪フィズバズフィズバズどどんがどん ♪三の倍数の時はフィズ ♪五の倍数の時はバズ ♪三と五の三と五の ♪公倍数ではフィズバズ印字 ♪フィズバズ音頭でどどんがどん そこのズブズブの日本人のあなた 自然にメロディが浮かんで来たでしょ
355 名前:uy ◆yyC0rYWEq2 mailto:sage [2011/06/16(木) 22:02:56.19 ] メタでかけよ
356 名前:仕様書無しさん mailto:sage [2011/06/17(金) 00:03:58.61 ] >>355 お手本プリーズ
357 名前:仕様書無しさん mailto:sage [2011/06/17(金) 10:22:50.20 ] メタと付く言語はMLとmetafontしか知らんな…
358 名前:仕様書無しさん mailto:sage [2011/06/17(金) 16:55:18.24 ] メタで書けば3や5プリントしてもいいのかw
359 名前:仕様書無しさん mailto:sage [2011/07/07(木) 21:47:26.61 ] haskellとcで!!と思ったら、すでに書かれてた。。。Orz haskellの内包表記で書けないか考えてみる
360 名前:仕様書無しさん mailto:sage [2011/07/08(金) 12:32:30.06 ] using System; class FizzBuzz { static void Main() { for (var n = 1; n <= 100; n++) { var f = (n % 3 == 0 ? "Fizz" : "") + (n % 5 == 0 ? "Buzz" : ""); Console.WriteLine(f == "" ? "{0}" : f, n); } } }
361 名前:仕様書無しさん mailto:sage [2011/07/08(金) 20:37:40.13 ] これがどう問題なのか 誰か詳しく教えてくれ 913 :名無しさん@12周年 :sage :2011/07/02(土) 21:53:57.61 ID:vEYqWa5o0 >>871 アメリカで例えると オバマ大統領がアルカイダにいる、ビンラディンの家族に資金援助していたという事で騒ぎになってる。 オバマがこっそり9.11実行犯の釈放嘆願書に署名 ↓ オバマ「私ははめられた!!うっかり署名してしまった! 私は卑怯で残忍なテロリストを絶対許さない!!」 ↓ オバマはイスラム原理主義の団体から多額の寄付を受け取っていた←追加分 ↓ オバマがこっそりビンラディンの家族に毎年、計6250万円献金 ↓ クリントンもこっそりビンラディンの家族に1000万円献金 ←ここが鳩山分★ ↓ アメリカのメディアは全く報じず ねーよwww
362 名前:仕様書無しさん mailto:sage [2011/07/17(日) 17:04:57.69 ] repeat 99 mes n+cnt if n\15=0 : mes "FizzBuzz": else { if n\3=0 : mes "Fizz" if n\5=0 : mes "Buzz" } loop ;未RUN
363 名前:仕様書無しさん mailto:sage [2011/07/21(木) 01:29:31.99 ] ホットスーププロセッサなら for n,1,100:s="":if n\3=0{s="Fizz"}if n\5=0{s+"Buzz"}if s=""{s=n}mes s:next
364 名前:仕様書無しさん mailto:sage [2011/07/21(木) 12:30:50.58 ] using System; class FizzBuzz { static void Main() { int m3 = 0, m5 = 0; for (int i = 1; i <= 100; i++) { if (++m3 == 3) { Console.Write("Fizz"); m3 = 0; } if (++m5 == 5) { Console.Write("Buzz"); m5 = 0; } if (m3 != 0 && m5 != 0) Console.WriteLine(i); else Console.WriteLine(); } } }
365 名前:362 mailto:sage [2011/07/21(木) 23:31:27.81 ] >>363 そんなかんたんにいくのね・・・
366 名前:仕様書無しさん mailto:sage [2011/08/01(月) 10:21:21.51 ] クソコードを書きたくなったから書いてみる print ':'.join('FizzBuzz' if n % 15 == 0 else 'Fizz' if n % 3 == 0 else 'Buzz' if n % 5 == 0 else str(n) for n in xrange(1, 101))
367 名前:仕様書無しさん mailto:sage [2011/08/01(月) 10:23:28.39 ] \nに直すの忘れてたが多分どうでもいいな
368 名前:仕様書無しさん [2011/08/07(日) 04:17:05.04 ] #include <stdio.h> main(void){ int i = 0,flag = 0; while(i < 101){ if(i % 3 == 0){ printf("Fizz"); flag = 1; } if(i % 5 == 0){ printf("Buzz"); flag = 1; } if(flag == 1){ printf("%d\n",i); }else{ printf("\n"); } flag = 0; i ++; } } 完全独学+初心者+ゲームしか作った事ねぇ・・・ 俺ダメダメかのぉ?orz
369 名前:仕様書無しさん [2011/08/07(日) 04:20:51.13 ] 見返したら色々間違えてる。なんかカオス。 俺赤面。こんな時間に眠い目こするからいけなかったんだ(言い訳 もう寝る。お休み
370 名前:仕様書無しさん mailto:sage [2011/08/07(日) 07:29:01.96 ] 本物のマなら、寝ずにデバッグする。
371 名前:仕様書無しさん mailto:sage [2011/08/07(日) 17:07:39.64 ] 真のマなら、寝て起きてからデバッグする。
372 名前:仕様書無しさん mailto:sage [2011/08/07(日) 18:05:59.34 ] >>371 それは正しい
373 名前:仕様書無しさん mailto:sage [2011/08/07(日) 18:50:41.19 ] 俺ぐらいになると寝てる間にデバッグするね
374 名前:仕様書無しさん mailto:sage [2011/08/07(日) 20:10:30.23 ] >>368 関数の型をうろ覚えで済ますな、ぐぐれ ループの範囲が1から100までなんだから、素直に1と100をコードに入れられるならそうした方が見やすい つーかループ変数の初期化とか更新とかはforを使えばもっと見やすいし、見やすければバグりにくい 最近のC/C++のforならスコープも付くしな
375 名前:仕様書無しさん [2011/08/25(木) 17:49:38.05 ] >>352 #include <stdio.h> int disp(int num, int flag, int sizeofarray, char *s[] ) { if (flag == sizeofarray-1) printf("%d\n", num) ; else printf("%s\n",s[flag]) ; return 0; }
376 名前:仕様書無しさん [2011/08/25(木) 17:52:39.16 ] (続き) int main(void) { int num1 = 1 ; int num2 = 100 ; int sizeofarray = 4 ; int a[] = {15,5,3,1} ; char *s[] = { "FizzBuzz","Buzz","Fizz"," "}; int i,j ; for (i = num1 ; i <= num2 ; i++) { for (j = 0 ; j < sizeofarray ; j++){ if (i % a[j] == 0 ) { break ; } } disp(i,j,sizeofarray,*s[]) ; } return 0; }
377 名前:仕様書無しさん [2011/08/25(木) 17:58:22.94 ] >>352 1 可変性 標準出力以外に出力する必要が生じたときは、disp()を修正する。 また、項目を追加する必要が生じたときは、変数の初期値を変える。 2 実行速度 可変性を重視すると、その分実行速度が落ちる。
378 名前:仕様書無しさん mailto:sage [2011/08/25(木) 19:01:16.31 ] >>375-376 まで行くと、可変性を無駄に重視しすぎだろ 要求が変更されたら、コードを書き換えて対応するのは当たり前なんだから、ほどほどに書き換えが やりやすくなってりゃいいのよ 実行効率どころか可読性まで大きく落として、まだ見ぬ要求変更の可能性に幅広く対応するのは無駄
379 名前:仕様書無しさん [2011/08/26(金) 15:09:14.82 ] ユーザー様から、仕様の大幅変更の要求が来た。 3で割り切れたときはFizz、5で割り切れたときはBuzz、 3と5で割り切れたときはFizzBuzzでいいんだけど、 それに加えて、7のときはGizz、13のときはKizz、 3と7のときはFizzGizz、3と13のときはFizzKizz、 5と7のときはBuzzGizz、5と13のときはBuzzKizz、 7と13のときはGizzKizzだ。 それから、計算の範囲は、1から100ではなく、100から1000までね。 修正作業をすぐにやってくれ。締め切りは明日ね。
380 名前:仕様書無しさん [2011/08/26(金) 15:17:48.71 ] int num1 = 100 ; int num2 = 1000 ; int sizeofarray = 11 ; int a[] = {91,65,39,35,21,15,13,7,5,3,1} ; char *s[] = { "GizzKizz","BuzzKizz","FizzKizz","BuzzGizz","FizzGizz","FizzBuzz","Kizz","Gizz","Buzz","Fizz"," "}; よかった。 実行効率どころか可読性まで大きく犠牲にして、 まだ見ぬ要求変更の可能性に幅広く対応したコードを書いておいて…
381 名前:仕様書無しさん mailto:sage [2011/08/26(金) 17:24:33.68 ] そんなピンポイントな仕変出す客おるかいw
382 名前:仕様書無しさん mailto:sage [2011/08/26(金) 17:42:45.50 ] 105(3,5,7で割れる)とかどうするんだろ、って思ったけどたぶんBuzzGizzなんだろうなぁ 直接"FizzBuzz"とか書かず、割れた数から出力すれば楽だと思ったんだが、そうするとFizzBuzzGizzになっちゃうんだよなぁ Fizz,Buzz,…の数だけフラグ用意して、立てたり立てなかったりしつつ、その後3本以上になったら小さいほうを折って…って面倒だわ
383 名前:仕様書無しさん mailto:sage [2011/08/26(金) 19:36:59.46 ] その前にギャラの話をしようじゃないか…
384 名前:仕様書無しさん mailto:sage [2011/08/26(金) 21:33:38.93 ] つーかその程度の変更なら、丸々書き換えても30分も要らんだろw
385 名前:仕様書無しさん mailto:sage [2011/08/27(土) 00:02:00.57 ] 面倒なだけで興味をひかないネタだな こういうところにもその人のスキルって出るよな よって>>379 は低スキルのバカグラマー
386 名前:仕様書無しさん mailto:sage [2011/08/27(土) 02:50:52.15 ] 明らかに>>375-376 に都合のいいように考えただけの仕様だもんな
387 名前:仕様書無しさん mailto:sage [2011/08/27(土) 02:55:14.40 ] 3で割り切れる時は3倍、5で割り切れる時は5倍にして表示してね、という簡単な変更要求が来た途端、 可変性が高いつもりでただ重いだけの無駄コードと化すしな
388 名前:仕様書無しさん mailto:sage [2011/08/27(土) 02:55:56.16 ] 可読性が落ちてることが一番問題じゃね?
389 名前:仕様書無しさん mailto:sage [2011/08/27(土) 15:09:54.05 ] この程度の規模のコードで、コードの再利用を考慮しすぎるのはムダ。 仕様変更に伴って書き直した方が早い。 >>1 のリンク先には > ちゃんとしたプログラマであれば、これを実行するプログラムを > 2分とかからずに紙に書き出せるはずだ。怖い事実を聞きたい? > コンピュータサイエンス学科卒業生の過半数にはそれができないのだ。 > 自称上級プログラマが答えを書くのに10-15分もかかっているのを見たこともある。 とある。 2分とかからずに書き出せる程度の規模のコードで再利用とかムダムダ。 仕様変更があったら数分かけて書き直せ。
390 名前:仕様書無しさん mailto:sage [2011/08/27(土) 21:59:59.72 ] int sizeofarray = sizeof(a) / sizeof(a[0]); くらい書け(もちろん宣言の順序も入れ替えて)、と思ったけど、どっちにしろ配列サイズが一致しないバグ を抱える可能性が気持ち悪いから、本気でやるなら三次元配列かstruct/classの配列にすべきか あと、末尾のダミー文字列が気持ち悪すぎるけど、これ無くても鼻から悪魔出ないよね? でも実際問題としては>>389 に完全同意
391 名前:仕様書無しさん mailto:sage [2011/08/27(土) 22:08:29.33 ] unsignedも付けろ
392 名前:仕様書無しさん mailto:sage [2011/08/27(土) 23:12:30.03 ] >>391 追加料金が1人月発生しますが良いですか?
393 名前:仕様書無しさん mailto:sage [2012/02/09(木) 02:03:42.02 ] さあ、忘れたころにやってくる。
394 名前:仕様書無しさん [2012/02/12(日) 22:03:06.96 ] ひよこグミを参考にしながらOpenCOBOLでショートコーディングに挑戦してみました IDENTIFICATION DIVISION. PROGRAM-ID. FIZZBUZZ. DATA DIVISION. WORKING-STORAGE SECTION. 01 N PIC 999. PROCEDURE DIVISION. RU-PU. ADD 1 TO N IF 0 = N(3:) OR 5 = N(3:) IF N = N / 3 * 3 DISPLAY "FizzBuzz" ELSE DISPLAY "Buzz" END-IF ELSE IF N = N / 3 * 3 DISPLAY "Fizz" ELSE DISPLAY N(3 - 0 ^ (9 / N):) END-IF END-IF IF N < 100 GO RU-PU END-IF STOP RUN.
395 名前:仕様書無しさん mailto:sage [2012/02/13(月) 22:10:32.70 ] RU-PU. がいいね。
396 名前:仕様書無しさん [2012/02/14(火) 01:26:49.30 ] これでいいのかな?VB.net Dim fizz As String = "Fizz" Dim buzz As String = "Buzz" Dim i As Integer For i = 1 To 100 Dim fl As Boolean = True If i Mod 3 = 0 Then rtAnswer.Text &= fizz fl = False End If If i Mod 5 = 0 Then rtAnswer.Text &= buzz fl = False End If If fl Then rtAnswer.Text &= i End If rtAnswer.Text &= " " If i Mod 10 = 0 Then rtAnswer.Text &= vbCrLf End If Next
397 名前:仕様書無しさん mailto:sage [2012/02/14(火) 20:47:20.57 ] >If i Mod 10 = 0 Then ???
398 名前:仕様書無しさん [2012/02/14(火) 21:31:53.79 ] >>397 10個ごとに改行入れるってことだろ?見やすくするために
399 名前:仕様書無しさん mailto:sage [2012/02/14(火) 21:53:06.43 ] 引用のおっさんここにもいるのか
400 名前:仕様書無しさん mailto:sage [2012/02/16(木) 03:14:53.62 ] なんだ 引用のおっさん て?
401 名前:仕様書無しさん mailto:sage [2012/04/09(月) 23:59:48.08 ] FizzBuzzクイズ 1.fizz.buzz #=> 1 3.fizz.buzz #=> "Fizz" 5.fizz.buzz #=> "Buzz" 15.fizz.buzz #=> "FizzBuzz" となるようなメソッドfizz、buzzは定義可能か? 可能である場合、同様にgizzを追加定義し、 7.fizz.buzz.gizz #=> "Gizz" 21.fizz.buzz.gizz #=> "FizzGizz" 35.fizz.buzz.gizz #=> "BuzzGizz" 105.fizz.buzz.gizz #=> "FizzBuzzGizz" 105.fizz.gizz.buzz #=> "FizzGizzBuzz" と拡張・応用ができるか? メソッドのコールに()が必須の言語では 3.fizz().buzz() 形式でも構わない。 オープンクラス機構やメソッドのない言語では関数(buzz(fizz(3)) #=> "Fizz" など)で。