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

← Problem 37  Problem 39 →
<?php

// 918273645 が例として出ているので、答えはこれより大きいものと思われる。
// n= 1 のときに、頭が9 となる数字は 9しかない。
// 91-98,912-987,9123-9876のどれか
// 91-98 のとき、2桁、3桁、3桁となり、8桁なので違う
// 912-987 のとき、3桁、4桁となり 7桁になるので違う
// 9123-9876 のどれか
$answer = 918273645;

for($i = 9123 ; $i <= 9876 ; $i++)
{
	$tmp = $i.($i*2);
	
	if(strpos($tmp,"1") !== false and strpos($tmp,"2") !== false and strpos($tmp,"3") !== false and strpos($tmp,"4") !== false and strpos($tmp,"5") !== false and strpos($tmp,"6") !== false and strpos($tmp,"7") !== false and strpos($tmp,"8") !== false and strpos($tmp,"9") !== false)
	{
		if($answer < $tmp)
		{
			$answer = $tmp;
		}
	}
}
echo $answer;

?>
問題文