この記事の例では、PHP が指定された範囲内で回文数を見つける方法を説明しており、平方根も回文数です。参考のためにみんなで共有してください。詳細は以下の通りです
1. 要件:
2 つの値 X と Y が与えられた場合、この区間内の回文数を数え、それらの平方根も回文数であることを要求します。ここで、1
2. 解決策:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
エラー報告(E_ALL); ini_set("display_errors", 1); //タイムアウトを回避する set_time_limit(0); $t1=マイクロタイム(); 関数はPlalindrome($num){ $str="$num"; $len=strlen($num); $k = intval($len/2) + 1;//中間の桁数を取得します for($j=0;$j if($str{$j}!=$str{$len-1-$j}){ false を返す; } } true を返す; } 関数 showPlalindrome($min,$max){ //$min と $max の間の回文数を計算する必要があり、その平方根も回文数であるためです //つまり、sqrt($min)~sqrt($max) の間の数値を見つけることと同じです //正方形も $min~$max の間の回文数です //$min~$max は連続した正の整数であるため、多くの計算を減らすことができます。そうでない場合は... $start=sqrt($min); $end=sqrt($max); for($i=$start;$i if(isPlalindrome($i) &&isPlalindrome($n=$i*$i) ){ エコー $n。" } } } showPlalindrome(1,100000000000000); $t2=マイクロタイム(); $starttime =explode(" ",$t1); $endtime =explode(" ",$t2); $totaltime = $endtime[0]-$starttime[0]+$endtime[1]-$starttime[1]; $timecost = sprintf("%s",$totaltime); echo "ページの実行時間: $timecost 秒"; ?> |
この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。