PHP如何判断是否为有效的完全平方数

给定一个正整数num,编写一个函数,如果num是一个完全平方数,则返回true,否则返回false。这时候我们应该怎么做?今天小编带大家了解一下,有需要的可以参考参考。

PHP如何判断是否为有效的完全平方数

给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False。

说明:不要使用任何内置的库函数,如  sqrt。

示例 1:

输入:16输出:True

登录后复制

示例 2:

立即学习“PHP免费学习笔记(深入)”;

输入: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 = 14 = 1 + 39 = 1 + 3 + 516 = 1 + 3 + 5 + 725 = 1 + 3 + 5 + 7 + 936 = 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  $num) {                $right = $mid - 1;            } else {                $left = $mid + 1;            }        }        return $left * $left == $num;    }}

登录后复制

推荐学习:php视频教程

以上就是PHP如何判断是否为有效的完全平方数的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2113860.html

(0)
上一篇 2025年2月24日 16:41:26
下一篇 2025年2月24日 07:05:06

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • php怎么去掉右边空格

    在php中,可以利用rtrim()函数来去掉字符串右边的空格,该函数可以去除字符串右边的空白字符和特殊字符;语法格式为“rtrim(string)”。 本教程操作环境:windows7系统、PHP7.1版,DELL G3电脑 在php中,可…

    2025年2月24日
    200
  • php怎么修改cookie时间

    php中可利用setcookie()函数来修改cookie时间,只需给该函数的第三个参数设置一个时间值即可;语法格式“setcookie(名称,值,expire)”,参数expire规定cookie的过期时间(Unix时间戳的形式)。 本教…

    2025年2月24日
    200
  • php fopen()不能创建文件吗

    在php中,fopen()不能创建文件,该函数用于打开一个文件或者URL。如果打开成功,则返回文件指针资源;如果打开失败则返回FALSE并附带错误信息,但不会创建新文件。 本教程操作环境:windows7系统、PHP7.1版,DELL G3…

    2025年2月24日
    200
  • php怎么执行js方法名

    php执行js的方法:首先创建一个PHP示例文件;然后通过“echo “test();”;”方式执行js方法即可。 本文操作环境:windows7系统、PHP7.1版,DELL G3电脑 php怎么执行js方法? P…

    2025年2月24日
    200
  • php怎么实现保存下载文件

    php实现保存下载文件的方法:1、通过“function downfile(){…}”方法实现下载文件;2、通过header函数实现保存下载。 本文操作环境:windows7系统、PHP7.1版,DELL G3电脑 php 下载…

    2025年2月24日
    200
  • php空间如何设置伪静态

    php空间设置伪静态的方法:1、在httpd.conf中引入“httpd-vhosts.conf”;2、开启“mod_rewrite.so”;3、配置虚拟主机。 本文操作环境:windows7系统、PHP7.1版,DELL G3电脑 PHP…

    2025年2月24日 编程技术
    200
  • php xmlrpc 扩展怎么安装

    php xmlrpc扩展的安装方法:1、在Windows下,找到并去掉“extension=php_xmlrpc.dll”前面的分号;2、在Linux下加入“–with-xmlrpc”选项。 本文操作环境:windows7系统、…

    2025年2月24日
    200
  • php header 不起作用怎么办

    php header不起作用的方法:1、删除location和“:”号间的空格;2、删除在用header前的输出;3、header后的PHP代码被执行。 本文操作环境:windows7系统、PHP7.1版,DELL G3电脑 php hea…

    2025年2月24日
    200
  • php pdo如何设置字符集

    php pdo设置字符集的方法:首先创建一个PHP示例文件;然后连接数据库;最后在dsn后面加入“charset=utf8”即可。 本文操作环境:windows7系统、PHP7.1版,DELL G3电脑 php pdo怎么设置字符集? ph…

    2025年2月24日
    200
  • php ascii码怎么转字符

    php ascii码转字符的方法:首先创建一个PHP示例文件;然后通过“function decode($str, $prefix=””) {…}”方法将ascii码转为字符串即可。 本文操作环境:win…

    2025年2月24日
    200

发表回复

登录后才能评论