Project Euler にチャレンジ:Problem 16 PHPでの解答

← Problem 15  Problem 17 →
桁数が大きくなりすぎるので、一桁ずつ配列に入れて、最後に和を求める。
<?php

$answer = 0;
$num = array(1=>2);

// 1000回ループ
for($i = 1; $i < 1000;$i++)
{
	$count = count($num);

	for($j = $count ; $j >= 1 ; $j--)
	{
		$num[$j] *= 2;
		if($num[$j] >= 10)
		{
			@$num[$j + 1] ++;
			$num[$j] -= 10;
		}
	}
}

$answer = array_sum($num);

echo $answer;

?>
問題文