力扣(leetcode)367. 有效的完全平方数——c语言新手入门

力扣刷题的开始(2)

如有不对的地方欢迎指正(๑•̀ㅂ•́)و✧

-题目
力扣(leetcode)367. 有效的完全平方数——c语言新手入门_第1张图片

  • 2

已给定部分代码(注意这代表已给定部分数据,不可删除,可以理解为让我们完成一个函数)

在这里插入图片描述

  • 3

笔记

1 执行时出错(最后输入2000105819)则说明要使用 ( long long int )型
2.输出true,false为小写

  • 4
    代码实现

第一种思路——二分法

bool isPerfectSquare(int num){
    if(num==1)
    return true;
    long long int low=0,high=num/2,mid;
    while(low<=high)
    {
        mid=(high+low)/2;
        if(num>mid*mid)
            low=mid+1;
        else if(num<mid*mid)
            high=mid-1;
        else break;

    }
    if(low>high) return false;
    else  return true;
}

第二种思路——利用完全平方数的性质

4 = 1 + 3;
9 = 1 + 3 + 5;

bool isPerfectSquare(int num){
    if (num == 0 ) return false;
a
    int a = 1;
    while ( num > 0){
        num -= a;
        a += 2;
    }
    return num == 0 ? true : false;

}

如有侵权,请联系

你可能感兴趣的:(力扣刷题)