亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

紫阳县| 邓州市| 滕州市| 伊金霍洛旗| 宣武区| 内乡县| 遂川县| 云梦县| 扬州市| 光泽县| 扎兰屯市| 探索| 江津市| 石台县| 鞍山市| 凯里市| 奉新县| 牟定县| 宁夏| 辛集市| 哈密市| 介休市| 垫江县| 阜康市| 崇信县| 陇西县| 靖边县| 怀柔区| 九龙城区| 东丰县| 苏尼特右旗| 丰顺县| 宁南县| 博爱县| 界首市| 弋阳县| 图们市| 松江区| 盐池县| 宜黄县| 正宁县|