当前位置:网站首页>力扣刷题记录1.5-----367. 有效的完全平方数
力扣刷题记录1.5-----367. 有效的完全平方数
2022-08-09 01:51:00 【@白圭】
一、题目

二、代码
class Solution {
public:
bool isPerfectSquare(int num) {
double left=0;
double right=num;
double middle=0;
double last_consequence=-10;
double now_consequence=-100;
double return_num=0;
bool bool_return_num=0;
int cal_time=0;
int last_left=0;
int last_middle=0;
int last_right=0;
//特殊处理:
//二分逼近也要防止自身就是答案的情况
if(num==1) bool_return_num=1;
//一般情况
if(bool_return_num==0)
{
//首先二分逼近平方根
while(abs(last_consequence-now_consequence)>0.000000000001)
{
last_consequence= now_consequence;
middle=(left+right)/2;
cal_time=cal_time+1;
if(middle*middle==num) //相等直接退出
{
return_num=middle;
last_left=0;
last_middle=1;
last_right=0;
break;
}
if(middle*middle>num) //大于 结果必定在左边
{
right=middle;
now_consequence=abs(middle*middle-num);
return_num=middle;
last_left=0;
last_middle=0;
last_right=1;
}
if(middle*middle<num)
{
left=middle;
now_consequence=abs(middle*middle-num);
return_num=middle;
last_left=1;
last_middle=0;
last_right=0;
}
}
std::cout<<"last_left "<< last_left<<std::endl;
std::cout<<"last_middle "<<last_middle <<std::endl;
std::cout<<"last_right "<<last_right <<std::endl;
std::cout<<cal_time<<std::endl;
std::cout<<(int)return_num<<std::endl;
std::cout<<return_num<<std::endl;
std::cout<<return_num*return_num<<std::endl;
std::cout<<abs(return_num-(int)return_num)<<std::endl;
std::cout<<"return_num "<<return_num <<std::endl;
std::cout<<"int(return_num+0.5000001) "<<int(return_num+0.5) <<std::endl;
if(abs(return_num-int(return_num+0.5000001))<=0.001)
{
bool_return_num=1;
}
else
{
bool_return_num=0;
}
}
std::cout<<bool_return_num<<std::endl;
return bool_return_num;
}
};
三、运行结果

边栏推荐
猜你喜欢
随机推荐
在树莓派上使用cpolar(番外篇2)
基于机器学习之模型树短期负荷预测(Matlab代码实现)
保护您的 Web 应用程序的最佳开源 Web 应用程序防火墙
[深入研究4G/5G/6G专题-55]: L3信令控制-4-软件功能与流程的切分-CU网元的信令
TCP/IP协议栈
【物理应用】基于El-centro地震波作用下隔震与非隔震支座下的顶层位移、速度、加速度的对比情况附matlab代码
2022年中国全民健身发展白皮书
LeetCode每日一题:搜索插入位置 (均1200道)方法:二分查找
LeetCode每日两题01:二分查找 (均1200道)
PostMan import certificate add certificate
Wireshark抓包工具
Dapr学习(4)之eShopOnDapr部署(Rancher2.63&k3s)
typescripet92-添加任务功能优化
LeetCode精选200道--双指针篇
Go-8-Gin框架
Go-11 - Process Control
《LC刷题总结》——贪心
【图像去噪】基于边缘增强扩散 (cEED) 和 Coherence Enhancing Diffusion (cCED) 滤波器实现图像去噪附matlab代码
全文翻译:EDPB 基于设计和默认的数据保护指南
虹科技术|如何阻止供应链攻击?









