侧边栏壁纸
博主头像
微尘 博主等级

行动起来,活在当下

  • 累计撰写 132 篇文章
  • 累计创建 1 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

完全平方数

Administrator
2023-02-11 / 0 评论 / 0 点赞 / 12 阅读 / 0 字

方法一,利用sqrt函数

原理

  • 判断开平方的数是不是一个整数

注意:

  • 1,不能判断一个浮点数是不是整数–可以利用向下取整进行判断。
  • 2,sqrt返回的是double类型,要强转Int进行向下取整。

需备知识

  • double强转int,是只取整数,而不是四舍五入。

源码

bool isPerfectSquare(int num)
{
	int x = (int)sqrt(num);
	return x * x == num;
}

方法二,利用等差数列的和

原理

  • 根据等差数列的求和公式

  • 63e84313ee088

  • 让num从1开始减按上式数据开始减,如果num是一个完全平方数,那么它最终会减成0,而如果不是一个完全平方数,那么num最后会小于0。

源码

bool isPerfectSquare(int num)
{
	if (num < 2) return true;
	int sub = 1;
	while(num > 0)
	{
		num -= sub;
		sub += 2;
	}
	return num == 0;
}

方法三,二分查找

—待定

方法四,牛顿迭代法

–待定

测试链接

Leetcode367. 有效的完全平方数

0

评论区