💡题目要求
- 有效的完全平方数
给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false 。
进阶:不要 使用任何内置的库函数,如 sqrt 。
示例 1:
输入:num = 16
输出:true
示例 2:
输入:num = 14
输出:false
提示:
1 <= num <= 2^31 - 1
💡答案和解题思路
我一开始的想法就是暴力法,直接遍历,看是否等于x*x,
🌲1.上代码
//暴力解法,遍历
public bool IsPerfectSquare(int num)
{
long x = 1, square = 1;
while (square <= num)
{
if (square == num)
{
return true;
}
x++;
square = x * x;
}
return false;
}
🌲2.解题思路
看了官方的题解后,才发现还有这个多方法,还是太年轻啊
🏺1.直接用Math.Sqrt(),我这个竟然没想到,唉
🏺2.第二种就是跟我一样了,直接暴力循环
🏺3.二分查找法
🏺4.牛顿迭代法,我直接放弃了,太难了,哈哈
💡二、知识点学习
今天的知识点就是:被忽略的Math.Sqrt()
二分法
牛顿迭代法
总结
欢迎大佬多多来给萌新指正,欢迎大家来共同探讨。
如果各位看官觉得文章有点点帮助,跪求各位给点个“一键三连”,谢啦~
声明:本博文章若非特殊注明皆为原创原文链接
https://blog.csdn.net/Wrinkle2017/article/details/121165287
————————————————————————————————
💢💢版权声明
版权声明:本博客为非营利性个人原创
所刊登的所有作品的著作权均为本人所拥有
本人保留所有法定权利,违者必究!
对于需要复制、转载、链接和传播博客文章或内容的
请及时和本博主进行联系
对于经本博主明确授权和许可使用文章及内容的
使用时请注明文章或内容出处并注明网址
转载请附上原文出处链接及本声明