【Cランクレベルアップメニュー】> FINAL問題【シミュレーション】シミュレーション (paizaランク C 相当) [難易度: 1817 ±11]
※リンク先へ移動するためには[paiza]へのログインが必要です。
カウンター魔法を得意とするパイザ君は、同じくカウンター魔法を使うモンスターと戦っています。バトルはターン制で、パイザ君が先攻で、パイザ君とモンスターで交互に魔法を使い合います。パイザ君の魔法は 1 回目と 2 回目に使うときにはダメージ 1 ですが、 3 回目以降の n 回目には、(モンスターから受けた (n - 1) 回目の攻撃のダメージ) + (モンスターから受けた (n - 2) 回目の攻撃のダメージ) のダメージを与えます。モンスターの魔法はこれよりも強力で、 1 回目と 2 回目には同じくダメージ 1 ですが、 3 回目以降の n 回目には、 (パイザ君から受けた (n - 1) 回目の攻撃のダメージ) * 2 + (パイザ君から受けた (n - 2) 回目の攻撃のダメージ) のダメージを与えます。
パイザ君は自分がどれくらいモンスターの攻撃を耐えられるか知りたいと思っています。パイザ君の体力を H として、両者が同じ魔法を使い続けたとき、モンスターの何回目の攻撃でパイザ君の体力が 0 以下になるかを出力してください。
入力値(例)
7
出力値(例)
4
解答例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<?php $h = trim(fgets(STDIN)); $paiza = [0, 1, 1]; $enemy = [0, 1, 1]; $i = 3; while(true) { $enemy[] = ($paiza[$i - 1] + $paiza[$i - 2]); $paiza[] = (($enemy[$i - 1] * 2) + ($enemy[$i - 2])); $i++; if(array_sum($paiza) >= $h) { break; } } echo count($paiza) - 1; ?> |