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"; } }
ではー。