您好,登錄后才能下訂單哦!
這篇文章主要介紹了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í)!
免責(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)容。