

Yj
こんにちは!!Cランク最終編です。☺️
STEP: 1 条件を満たす最小の自然数
下記の問題はwhile(true)を使いました。こちら参考にしました。
<?php
$n = 10000;
while(true){
if($n % 13 == 0){
break;
}
$n +=1;
}
echo $n . "\n";
?>
STEP: 2 シミュレーションの練習
<?php
$n = trim(fgets(STDIN));
list($a, $b) = explode(" ", trim(fgets(STDIN)));
$p_total = 1;//初期数
$k_total = 1;//初期数
$count = 0;//何回回ったか確認
while(true){
$count +=1;
//paizaのターン(順番)
$give_kiri = $p_total * $a;//霧島にあげる数
$k_total = $k_total + $give_kiri;//霧島トータル
if($k_total > $n){//霧島京子の数がnより大きくなるまで繰り返します。
break;
}
//kirishimaのターン(順番)
$give_pai = $k_total % $b;//paizaにあげる数
$p_total = $p_total + $give_pai;//paizaトータル
}
echo $count . "\n";//手続きが終わったときのパイザ君の操作回数
?>
FINAL問題 シミュレーション
<?php
//入力例1の場合
$h = trim(fgets(STDIN));// 7HP
$p_attack = array(0, 1, 1);//paizaの1回目と2回目の攻撃と空箱用意
$m_attack = array(0, 1, 1);//モンスターの1回目と2回目の攻撃と空箱用意
$dmg = 2;//ダメージ2は確定なので受けてる状態からスタート
$count = 2;//2回ダメージ受けたところからカウント
while($dmg < $h){ //$dmg<7体力が7を超えたらループを抜ける
$p_attack[0] = $p_attack[1];
$p_attack[1] = $p_attack[2];
$m_attack[0] = $m_attack[1];
$m_attack[1] = $m_attack[2];
$p_attack[2] = $m_attack[0] + $m_attack[1];
$m_attack[2] = $p_attack[0] + 2 * $p_attack[1];
$dmg +=$m_attack[2];
$count++;//モンスターに何度攻撃されたかカウント
}
echo $count . "\n";
?>