FizzBuzz問題を解いてみた
FizzBuzz問題を解いてみた。
言語はJava。思いつくままに書いてみた。
所要時間はどのくらいだろう?30分はかかってないが、10分切っていたかは微妙。
約4ヵ月間の勉強の成果はどんなもんか。
- コード
- 解答例
- 所感
コード
自分で考えたのは以下。
もっと簡略に書けるんだろうなあ。割り切れるかどうかの判定とか。
後、int型以上の値を入力した場合を考えてなかった。
引数が0や負、実数の場合とか。考えるとどんどん出てくる。
良く見なくても、コメントの日本語がおかしい!これはひどい。
class FizzBuzz{
//FizzBuzzアルゴリズム
//2012/08/13
public static void main(String[] args){
//正常処理
if(args.length == 1){
//引数の型をチェック
boolean result = NumCheck(args[0]);
//正常処理
if(result){
int arg = Integer.parseInt(args[0]);
for(int i = 1; i <= arg; i++){
if(i % 3 == 0 && i % 5 == 0){
System.out.println("FizzBuzz");
}else if( i % 3 == 0){
System.out.println("Fizz");
}else if(i % 5 == 0){
System.out.println("Buzz");
}else{
System.out.println(i);
}
}
//引数がStringの場合
}else{
System.out.println("整数を引数に入力してください");
}
//引数が1つ以外の場合
}else{
System.out.println("整数値の引数を1つ入力してください。");
}
}
//引数が文字列か数値であるかを判断するメソッド
static boolean NumCheck(String num){
try{
int n = Integer.parseInt(num);
return true;
}catch(NumberFormatException e){
return false;
}
}
}
所感
1年後とか忘れたころに再度挑戦してみたい。
その時には、短く読みやすいコードが書けると良いな。
パールやシェルで挑戦するのもいいかも。