AtCoder -Shift only- をPHPで解いてみた。


提出したコード

shift.php
<?php
fscanf(STDIN, "%d", $numberCount);
$numbers = explode(' ', fgets(STDIN));
$counts = array();
for ($i = 0; $i < $numberCount; $i++) {
    $count = 0;
    while ($numbers[$i] % 2 === 0) {
        $count += 1;
        $numbers[$i] = $numbers[$i] / 2;
    }
    $counts[$i] = $count;
}
echo min($counts);
?>

コードの解説

与えられた各数値を2で割り切れなくなるまで割り続け、その回数をそれぞれ記録。
記録された数値の中で一番少ない数値を返す。

なので奇数が含まれていたら必然的に0が返される。
配列の中身を全部見て全て偶数だったら処理を行う。これを繰り返す。という方法がすぐに思いついたが冗長になりそうなのでやめた。