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

← Problem 35  Problem 37 →
とてもいい感じにできた気がして満足。
2021/2/3 修正
先頭に0をつけて回文になるものは含まないので、1桁目が0になるものは除外。
2進数で1桁目ゼロになるものといえば、偶数。
<?php
$answer = 0;
for($i = 1 ; $i < 1000000 ; $i += 2)
{
	// 2進数、10進数において回文数か否か
	if(check_kaibun($i) and check_kaibun(decbin($i)))
	{
		$answer += $i;
	}
}

echo $answer;

function check_kaibun($i)
{
	$top = strlen($i) - 1;
	$bottom = 0;
	$flag = true;
	while($top > $bottom )
	{
		// 一致しているか否かを調べる
		if(substr($i,$top,1) == substr($i,$bottom,1))
		{
			$top --;
			$bottom++;
		}
		else
		{
			$flag = false;
			break;
		}
	}
	return $flag;
}

?>
問題文