【市民講座】Scratchで競技プログラミング contest
コンテスト日時
2021/11/27 (Sa) 14:40 - 15:15

C - お小遣い

Milk
2
s
1024
MB
100

問題文

太郎くんの現在の お小遣い (おこづかい)は $0$ 円です。

太郎くんはお母さんに次のようにお願いしました。

  • 今日 ( $0$ 日目) はお小遣いを $1$ 円もらう。
  • $1$ 日目以降は、前の日のお小遣いの $2$ 倍をもらう。

お母さんはこのお願いを受け入れました。

太郎くんはお小遣いが $X$ 円ほしいです。
太郎くんがお小遣いを $1$ 円も使わずに貯め続けたとき、お小遣いが $X$ 円 以上 になるのは何日目でしょうか。

制約

入力値は以下の条件を満たすことが保証されています。

  • $X$ は整数
  • $1 \leqq X \leqq 1,000,000,000 \ (=10^9)$

入力

$X$

整数 $X$ が与えられます。

出力

太郎くんのお小遣いが $i$ 日目に $X$ 円 以上 になるとき、その $i$ を表示してください。

なお、Scratch に はありません。↓下図のように >=または で組み合わせることで を実現できます。
Scratchで大なりイコール判定をする方法

入力例 1
20
出力例 1
4

この例では、太郎くんは $X = 20$ 円ほしいです。
お小遣いは次のように増えていきます。

  • $0$ 日目に $1$ 円もらう。お小遣いは $1$ 円になる。
  • $1$ 日目に $2$ 円もらう。お小遣いは $3$ 円になる。
  • $2$ 日目に $4$ 円もらう。お小遣いは $7$ 円になる。
  • $3$ 日目に $8$ 円もらう。お小遣いは $15$ 円になる。
  • $4$ 日目に $16$ 円もらう。お小遣いは $31$ 円になる。

$4$ 日目にお小遣いが $X$ 以上になるので、$4$ が答えです。

入力例 2
31
出力例 2
4

$4$ 日目にちょうどお小遣いが $31$ 円になります。
これは $X (=31)$ 以上なので、$4$ が答えです。

入力例 3
1
出力例 3
0

この例では、太郎くんは $X = 1$ 円ほしいです。
$0$ 日目に $1$ 円もらうことでお小遣いは $X$ 円以上になるので、$0$ が答えです。

提出
C++23 (g++ 12.2.0)