このTopCoderの問題はこちらで見ることができる(要TopCoder登録 & 問題文は英語)。問題文についておおまかに説明する。
ある正の整数がmega cool numberであるというのは、その桁が等差数列を形成しているときにそう呼ばれる。Nを与えたとき、1以上N以下の間の整数でmega cool numberとなる整数の数を返せ。
例えば123は初項1、公差1の等差数列なのでmega cool numberになることを意味している。
私の解答はこちら。
public class MegaCoolNumbersEasy { public int count(int N) { if( N<=99 ) return N; int n = 99; for( int i=100 ; i<=N ; i++ ){ String nstr = "" + i; int diff = nstr.charAt(0) - nstr.charAt(1); boolean isCool = true; for( int j=1 ; j<nstr.length()-1 ; j++ ){ if( nstr.charAt(j) - nstr.charAt(j+1) != diff ){ isCool = false; break; } } if( isCool ) n++; } return n; } }
得点は216.90/250、1回のsubmitでシステムテストクリア。問題文を理解する方が実装よりも時間がかかっています。
0 件のコメント:
コメントを投稿