学习时间:
2023年1月26日
题目描述:
题解分享:
// 作 者 : 繁 华 倾 夏
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
// 力扣(LeetCode):367. 有效的完全平方数
// num:传入的正整数
bool isPerfectSquare(int num) {
if (num == 1) { // 由于下方程序不能统计num=1
return true; // 所以此时进行统计
}
long long low = 1, high = num, mid; // 注意要设定为long long在这时由于数据量过大导致溢出
for (long long low = 1; low < high; low++) { // 使用二分查找法
mid = (low + high) / 2;
if (mid * mid == num) {
return true;
}
else if (mid * mid > num) {
high = mid - 1;
}
else {
low = low + 1;
}
}
return false;
}
// 测试用例
// 输入 num = 16
// 输出 true
int main(){
int num = 16;
bool re = isPerfectSquare(num);
printf("%d", re);
return 0;
}
【繁华倾夏】【每日力扣题解分享】【Day12】