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);
?>
コードの解説
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が返される。
配列の中身を全部見て全て偶数だったら処理を行う。これを繰り返す。という方法がすぐに思いついたが冗長になりそうなのでやめた。
Author And Source
この問題について(AtCoder -Shift only- をPHPで解いてみた。), 我々は、より多くの情報をここで見つけました https://qiita.com/tail-teil-tey/items/69f31b10b50f58805800著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .