これが出来れば一応プログラマらしい・・・
検索したら引っかかりました。
面白そうだと思い、直ぐにプログラムしました。
if文縛りを実装しようとしたが、出来ていません~w
縛りやデザパタなど色々できるので、中々奥が深く馬鹿にできないプログラムです。
(※コピペしたらインデントが消えてしまいました。m(o・ω・o)mゴメンヨ )
Rubyでの実装
――――通常ver――――
for i in 0..100
# 3で割り切れるか?
if ((i%3) == 0)
print 'Fizz'
end
# 5で割り切れるか?
if ((i%5) == 0)
print 'Buzz'
end
# どちらでも割り切れない場合
if ( ((i%3) != 0) && ((i%5) != 0) )
print i
end
# 見やすいように文字間を空ける
print ' '
end
――――ここまで――――
――――再帰ver――――
# FizzBuzzメソッド
def fizz_buzz( count = 0 )
# 100より大きいか?
if (count > 100)
return
end
# 3で割り切れるか?
if ((count%3) == 0)
print 'Fizz'
end
# 5で割り切れるか?
if ((count%5) == 0)
print 'Buzz'
end
# どちらでも割り切れない場合
if ( ((count%3) != 0) && ((count%5) != 0) )
print count
end
# 見やすいように文字間を空ける
print ' '
# 再帰
fizz_buzz( (count+1) )
end
# メソッド呼び出し
fizz_buzz
――――ここまで――――
C++での実装
――――通常ver――――
#include <iostream>
int main()
{
for( int i = 0; i <= 100; ++i )
{
// 3で割り切れるか?
if( (i%3) == 0 ) { std::cout << "Fizz"; }
// 5で割り切れるか?
if( (i%5) == 0 ) { std::cout << "Buzz"; }
// どちらでも割り切れない場合
if( ((i%3) != 0) && ((i%5) != 0) ) { std::cout << i; }
// 見やすいように間を空ける
std::cout << " ";
}
}
――――ここまで――――
――――再帰ver――――
#include <iostream>
// FizzBuzzメソッド
void fizz_buzz( int count = 0 )
{
// 100より大きいか?
if( count > 100 ) { return; }
// 3で割り切れるか?
if( (count%3) == 0 ) { std::cout << "Fizz"; }
// 5で割り切れるか?
if( (count%5) == 0 ) { std::cout << "Buzz"; }
// どちらでも割り切れない場合
if( ((count%3) != 0) && ((count%5) != 0) ) { std::cout << count; }
// 見やすいように間を空ける
std::cout << " ";
// 再帰
fizz_buzz( (count+1) );
}
int main()
{
// 関数呼び出し
fizz_buzz();
}
――――ここまで――――
この記事がみなさんの少しでも役に立てば僥倖です!!
最終更新:2009年10月17日 21:17