溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

php如何實(shí)現(xiàn)找出指定范圍內(nèi)回文數(shù)且平方根也是回文數(shù)的方法

發(fā)布時(shí)間:2021-09-02 11:36:54 來源:億速云 閱讀:111 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要介紹了php如何實(shí)現(xiàn)找出指定范圍內(nèi)回文數(shù)且平方根也是回文數(shù)的方法,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

具體如下:

一、要求:

給出兩個(gè)數(shù)值X和Y,統(tǒng)計(jì)在這個(gè)區(qū)間里的回文數(shù),并且要求它們的平方根也是回文數(shù)。其中 1<= x <= y < 10 14

二、解決方法:

<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);
//避免超時(shí)
set_time_limit(0);
$t1=microtime();
function isPlalindrome($num){
  $str="$num";
  $len=strlen($num);
  $k = intval($len/2) + 1;//獲取中間位數(shù)
  for($j=0;$j<$k;$j++){
    if($str{$j}!=$str{$len-1-$j}){ 
      return false;
    }
  } 
  return true;
}
function showPlalindrome($min,$max){
//因?yàn)橐?jì)算在$min,$max間的回文數(shù)且其自身平方根也是回文數(shù)
//所以相當(dāng)于求一sqrt($min)~sqrt($max)間數(shù)
//其平方在$min~$max間也是回文數(shù)
//$min~$max是連續(xù)正整數(shù),所以可以這樣縮小很多計(jì)算量,否則……
  $start=sqrt($min);
  $end=sqrt($max);
  for($i=$start;$i<$end;$i++){
    if(isPlalindrome($i) &&isPlalindrome($n=$i*$i) ){
     echo $n." <br/>";
    }
  }
}
showPlalindrome(1,100000000000000);
$t2=microtime();
$starttime = explode(" ",$t1);
$endtime = explode(" ",$t2);
$totaltime = $endtime[0]-$starttime[0]+$endtime[1]-$starttime[1];
$timecost = sprintf("%s",$totaltime);
echo "頁面運(yùn)行時(shí)間: $timecost 秒";
?>

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“php如何實(shí)現(xiàn)找出指定范圍內(nèi)回文數(shù)且平方根也是回文數(shù)的方法”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI