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

    技术2025-05-21  91

    力扣刷题的开始(2)

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

    -题目

    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; }

    如有侵权,请联系

    Processed: 0.021, SQL: 9