kmjp's blog

競技プログラミング参加記です

TopCoder SRM 568 Div2 Easy TheSimilarNumbers

Div1がひどかったのでDiv2も練習。
http://community.topcoder.com/stat?c=problem_statement&pm=10553

片方の数字がもう片方の10倍より大きい場合、similarでない。
数値の最小値と最大値が与えられた場合、similarでない数値群の最大数を求める。

これは単純に、最小値から初めて10倍して1足す、という処理を最大値を超えるまで繰り返せばよい。

class TheSimilarNumbers {
	public:
	int find(int lower, int upper) {
		int i=1;
		while(lower*10+1<=upper) {
			i++;
			lower = 10*lower + 1;
		}
		return i;
	}
};

まとめ

Div2 Easyとはいえ簡単すぎない?