くんすとの備忘録

IT系技術メモ

移転しました。

15秒後に自動的にリダイレクトします。

bcスクリプトでFizzBuzzしてみた

bc(1)スクリプト言語だということを聞きつけ、ちょろっと遊んでみました。

GNU版のbcを使います

とりあえずFizzBuzz

関数定義やif-elseなどが使えるらしい。

fizzBuzz.bc

#!/usr/bin/bc -q
define fizzbuzz (n) {
    if (n%15 == 0) {
        print "Fizz Buzz"
    } else if (n%5 == 0) {
        print "Buzz"
    } else if (n%3 == 0) {
        print "Fizz"
    } else {
        print n
    }
    print "\n"
    fizzbuzz(n+1)
}
fizzbuzz(1)
quit

実行

$ ./fizzBuzz.bc | head -20
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
Fizz Buzz
16
17
Fizz
19
Buzz

その他

for文を使ったり、read()で標準入力を読んだりもできる模様。

hoge.bc

#!/usr/bin/bc -q
a = read()
for (i=0;i<a;i++) {
    print i
    print " "
}
print "\n"
quit

実行

$  echo 10 | ./hoge.bc
0 1 2 3 4 5 6 7 8 9


……というか、はてブシンタックスハイライトにbcあるのね。