今日の一行

[Gauche] FizzBuzz問題 Slideshow

昨日の問題のGauche版。

http://www.aoky.net/articles/jeff_atwood/why_cant_programmers_program.htm

1から100までの数をプリントするプログラムを書け。ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。

 gosh> (use srfi-1)
 #<undef>
 gosh> (map                                                               
          (lambda (x) (cond ((= (modulo x 15) 0) (string-copy "FizzBuzz"))
                            ((= (modulo x 5) 0) (string-copy "Buzz"))
                            ((= (modulo x 3) 0) (string-copy "Fizz"))
                            (else x)))
         (iota 100 1))
 (1 2 "Fizz" 4 "Buzz" "Fizz" 7 8 "Fizz" "Buzz" 11 "Fizz" 13 14 "FizzBuzz" 16 17
 "Fizz" 19 "Buzz" "Fizz" 22 23 "Fizz" "Buzz" 26 "Fizz" 28 29 "FizzBuzz" 31 32 "Fizz"
 34 "Buzz" "Fizz" 37 38 "Fizz" "Buzz" 41 "Fizz" 43 44 "FizzBuzz" 46 47 "Fizz" 49
 "Buzz" "Fizz" 52 53 "Fizz" "Buzz" 56 "Fizz" 58 59 "FizzBuzz" 61 62 "Fizz" 64 "Buzz"
 "Fizz" 67 68 "Fizz" "Buzz" 71 "Fizz" 73 74 "FizzBuzz" 76 77 "Fizz" 79 "Buzz" "Fizz"
 82 83 "Fizz" "Buzz" 86 "Fizz" 88 89 "FizzBuzz" 91 92 "Fizz" 94 "Buzz" "Fizz" 97
 98 "Fizz" "Buzz")
 by えんどうやすゆき

Comment Form:

コメント・トラックバック規約を必ずお読みください。

 

Comments:


Trackback URL: http://karetta.jp/trackback/blog/oneline/022688

Trackbacks:


このサイトについて|ヘルプ|Q&A|個人情報保護|プライバシーポリシー|利用規約|コメント・トラックバック規約|削除規程|広告掲載
Copyright (c) 2005-2007 Time Intermedia Corporation