91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP怎么判斷是否為有效的完全平方數

發布時間:2021-07-13 16:04:55 來源:億速云 閱讀:199 作者:chen 欄目:編程語言

這篇文章主要介紹“PHP怎么判斷是否為有效的完全平方數”,在日常操作中,相信很多人在PHP怎么判斷是否為有效的完全平方數問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”PHP怎么判斷是否為有效的完全平方數”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

給定一個正整數num,編寫一個函數,如果num是一個完全平方數,則返回True,否則返回False。這時候我們應該怎么做?今天小編帶大家了解一下,有需要的可以參考參考。

給定一個正整數 num,編寫一個函數,如果 num 是一個完全平方數,則返回 True,否則返回 False。

說明:不要使用任何內置的庫函數,如  sqrt。

示例 1:

輸入:16
輸出:True

示例 2:

輸入:14
輸出:False

解題思路 1

php 不能使用 pow 函數,騷操作是 ** 0.5 這樣的方式,自乘 0.5 次從 PHP5.6.0開始和根號效果一樣。

代碼

class Solution {
    /** 
    * @param Integer $num 
    * @return Boolean 
    */
    function isPerfectSquare($num) {
        return $num**0.5 == (int)($num**0.5);
    }}

解題思路 2

利用完全平方數的性質,完全平方數是一系列奇數之和,例如:

1 = 1
4 = 1 + 3
9 = 1 + 3 + 5
16 = 1 + 3 + 5 + 7
25 = 1 + 3 + 5 + 7 + 9
36 = 1 + 3 + 5 + 7 + 9 + 11
....
1+3+...+(2n-1) = (2n-1 + 1) n/2 = n* n
時間復雜度為 O(sqrt(n))。

代碼

class Solution {
    /** 
    * @param Integer $num 
    * @return Boolean 
    */
    function isPerfectSquare($num) {
        $start = 1;
        while($num > 0)
        {
            $num -= $start;   // 累減到最后是 0 
            $start += 2;      // 每次 +2 保持是連續奇數
        }
        return $num == 0;
    }}

解題思路3

二分查找

代碼

class Solution {
    /** 
    * @param Integer $num 
    * @return Boolean 
    */
    function isPerfectSquare($num) {
        $left = 0;
        $right = $num;
        while($left < $right)
        {
            $mid = $right - floor(($right-$left)/2);
            if ($mid * $mid == $num) {
                return true;
            } elseif ($mid * $mid > $num) {
                $right = $mid - 1;
            } else {
                $left = $mid + 1;
            }
        }
        return $left * $left == $num;
    }}

到此,關于“PHP怎么判斷是否為有效的完全平方數”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

海原县| 建宁县| 塔城市| 阳西县| 兴业县| 中宁县| 齐河县| 玉树县| 筠连县| 安徽省| 阳江市| 临潭县| 杭锦后旗| 福海县| 锡林浩特市| 永登县| 东乡县| 阿勒泰市| 晋中市| 康平县| 汤原县| 马山县| 安远县| 烟台市| 阿鲁科尔沁旗| 西平县| 沭阳县| 盐源县| 湘潭市| 镇江市| 迭部县| 濉溪县| 保定市| 墨脱县| 兴城市| 定边县| 永安市| 兴文县| 西藏| 辽阳市| 萨迦县|