【条件分岐メニュー】> 【積の最小化】STEP: 5 終了判定 2 (paizaランク C 相当) [難易度: 1368 ±14]
※リンク先へ移動するためには[paiza]へのログインが必要です。
2 以上の整数N, Kが与えられます。
「Nを 2 倍した数でNを更新する」という操作を何度か繰り返すことを考えます。
このとき, ちょうどある回数 M で N の値は K 以上になります。この時点で操作の繰り返しを終了することにします。
この繰り返しの回数Mを求めてください。(Mは 0 でも構いません)
例えば、Nを 2 、Kを 18 とします。
上記の操作を 3 回繰り返すと、N = 16 となります。
4 回くりかえすと、N = 32 となり、N >= K が成立します。ここで操作を終了し、最終的な操作の回数Mは 4 となります。
入力値(例)
2 18
出力値(例)
4
解答例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?php list($n, $k) = explode(" ", trim(fgets(STDIN))); $flag = 0; for($i = 0; $i < $k; $i++) { $n = $n * 2; $flag++; if($n >= $k) { break; } } echo $flag; ?> |