部屋を掃除したら漫画が沢山出てきたので書く日記

漫画とか合唱とかUNIXとかLinuxとかについて書く日記です。

FizzBuzz問題への解答・・・Bシェル

昨日書いたFizzBuzz問題をBシェルで書いてみました。

#!/bin/sh
i=1;
while [ $i -le 100 ];do
Fizz=`expr $i % 3`
Buzz=`expr $i % 5`
FizzBuzz=`expr $i % 15`
        if [ $FizzBuzz -eq 0 ];then
         echo "FizzBuzz!"
        elif [ $Buzz -eq 0 ];then
         echo "Buzz!"
        elif [ $Fizz -eq 0 ];then
         echo "Fizz!"
        else
         echo "$i"
        fi
i=`expr $i + 1`
done

ちゃんとしたプログラマであれば、これを実行するプログラムを2分とかからずに紙に書き出せるはずだ
とありましたが、無理。プログラマじゃないし。

はてなブックマークされていたのでコメントを見てみましたが、
「剰余使うなよ」
とか
「出来るだろこれぐらい」
とかありましたが、作るのに1時間かかりました。今はこれが精一杯(byカリオストロの城)。

家でperlで作ってみよう。
#2008年4月10日追記
perlで作ってみました。

#!/usr/bin/env perl
@j = ( 1 .. 100 );
foreach $i ( @j ) {
        if ( $i %15 == 0 ) {
        print "FizzBuzz\n";
        } elsif( $i %5 == 0 ) {
        print "Buzz\n";
        } elsif( $i %3 == 0 ) {
        print "Fizz\n";
        } else {
        print "$i\n";
        }
}


ではー。