WARush

SRMの結果とか、解けた問題のコードを書いていきます

SRM573 Div2 Easy "SkiResortsEasy"

2つの正の整数A, Bにて、A <= 10*B かつ B <= 10*AであるようなA, Bは
similarであるとする。
例えば、1と10はsimilarであるが、1と11はそうではない。

整数lowerupperが与えられる。
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;
    }
};