如何获得最大的回文产品PHP

时间:2018-04-10 18:43:05

标签: php for-loop optimization

首先,我不是一个本地人,对所有这些错误感到抱歉。

我正试图获得两个整数之间最大的回文产品,例如; 3和11,最大将是11 * 11 = 121。

我试过这个。

function Pallendrome($str) : bool {
  return (strval($str) == strrev(strval($str))) ? true : false;
}

function largestPalindromicProduct($lower, $upper) {
$array = array();
  for($it=$upper; $it >= $lower; $it--){
    for($it_=$upper; $it_ >= $lower; $it_--){
      $num = $it*$it_;
      if(Pallendrome($num)) { array_push($array, $num); }
    }  
  }

if(empty($array)) { return NAN; }
else{ ksort($array); return $array[0];}

}

但是,我需要找到一种方法来优化它,因为由于引入的数字需要花费很长时间,所以有点大。

你们有什么想法吗?谢谢你!

1 个答案:

答案 0 :(得分:0)

我确信math.stackexchange.com上的人们可以帮助你提供更好的算法,但是为了优化你到目前为止的目的,这里是我所有评论的总结:

=arrayformula(not(iserror(find(B2:B, join(char(10), C2:C)))))