首頁  >  文章  >  後端開發  >  php找出範圍內回文數且平方根也是回文數的方法

php找出範圍內回文數且平方根也是回文數的方法

*文
*文原創
2017-12-26 10:58:341835瀏覽

php如何找出範圍內回文數且平方根也是回文數?本文主要介紹了php找出指定範圍內回文數且平方根也是回文數的方法,透過實例分析了php判斷回文的技巧。希望對大家有幫助。

本文實例講述了php找出指定範圍內回文數且平方根也是回文數的方法。分享給大家供大家參考。具體如下:

一、要求:

給出兩個數值X和Y,統計在這個區間裡的回文數,並且要求它們的平方根也是回文數。其中1<= x <= y < 10 14

二、解決方法:


<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);
//避免超时
set_time_limit(0);
$t1=microtime();
function isPlalindrome($num){
  $str="$num";
  $len=strlen($num);
  $k = intval($len/2) + 1;//获取中间位数
  for($j=0;$j<$k;$j++){
    if($str{$j}!=$str{$len-1-$j}){ 
      return false;
    }
  } 
  return true;
}
function showPlalindrome($min,$max){
//因为要计算在$min,$max间的回文数且其自身平方根也是回文数
//所以相当于求一sqrt($min)~sqrt($max)间数
//其平方在$min~$max间也是回文数
//$min~$max是连续正整数,所以可以这样缩小很多计算量,否则……
  $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 "页面运行时间: $timecost 秒";
?>

相關推薦:

PHP 函數執行效率的小比較_PHP教程

#php 演算法之分割數組,不用array_chunk()_PHP教程

PHP 解決utf-8和gb2312編碼轉換問題_PHP教程

#

以上是php找出範圍內回文數且平方根也是回文數的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn