SRM573 Div2 Easy "SkiResortsEasy"
訳
2つの正の整数A, Bにて、A <= 10*B かつ B <= 10*AであるようなA, Bは
similarであるとする。
例えば、1と10はsimilarであるが、1と11はそうではない。
整数lowerとupperが与えられる。
lower以上upper以下の整数から、
既に選んだ整数と互いにsimilarでないような整数を選んで行く時、
最大いくつの整数を選べるかを返せ。
制約
1 <= upper <= 10^6
1 <= lower <= upper
考えた事
最初はlowerと同じ整数xを選ぶ。
それからx*10+1な整数yを選ぶ。
yがupperより大きくなるまで続ける。
ソースコード
class TheSimilarNumbers{ public: int find( int lower, int upper ){ int cnt = 1; int i = lower; while( true ){ if( i * 10 + 1 <= upper ){ cnt++; }else{ break; } i = i * 10 + 1; } return cnt; } };