今日のTopCoderの問題はこちらで見ることができる(要TopCoder登録 & 問題文は英語)。それでは、問題について説明する。
うまれた年(born)から現在の年(year)まで、何回のうるう年を迎えたかを求めるメソッドを作成せよ。ただし、bornがうるう年の場合はそれをカウントせず、yearがうるう年の場合はそれをカウントするようにせよ。
私の解答は以下の通り。
public class LeapAge { public int getAge(int year, int born) { int nLeap = 0; for( int i=born+1 ; i<=year ; i++ ){ if( i % 100 == 0 && i % 400 == 0 ){ nLeap++; }else if( i % 100 == 0 ){ continue; }else if( i % 4 == 0 ){ nLeap++; } } return nLeap; } }
得点は237.55/250、中央値は約225点。うるう年の問題はFizzBuzzにならぶベタな問題ですよね。
0 件のコメント:
コメントを投稿