当前位置:网站首页>力扣刷题记录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;
}
};
三、运行结果
边栏推荐
猜你喜欢
spdlog日志库的封装使用
『Another Redis DeskTop Manager』用了这款Redis可视化工具,分析效率提升12倍
《LC刷题总结》——贪心
如何在群晖系统中安装cpolar(群晖6.X版)
基于机器学习之模型树短期负荷预测(Matlab代码实现)
全文翻译:EDPB数据保护影响评估(DPIA:Data Protection Impact Assessment)指南
【图像增强】基于Step和Polynomial 滤波实现图像增强附matlab代码
LeetCode精选200道--字符串篇
[C language brush questions] Application of fast and slow pointers in linked lists
LeetCode每日一题:搜索插入位置 (均1200道)方法:二分查找
随机推荐
Difference between KQL and Lucene
增额终身寿险哪家最好呢?真的安全吗?
全文翻译:欧盟第29条数据保护工作组 数据保护官指南
Go-11 - Process Control
谷歌翻译软件-免费谷歌翻译
多语种翻译-免费多语种翻译软件
ROS2 ERROR: OpenGL 1.5 is not supported in GLRenderSystem::initialiseContext at C:\ci\ws\build...
Design of Go-7-RESTful API
谷歌翻译下载-免费谷歌翻译软件下载
任务五 处理连续型数据
设计师设计相关图表时,如何运用设计技巧与合理的用户体验?【大屏可视化(PC端、移动端)】
【信号去噪】基于Sage-Husa自适应卡尔曼滤波器实现海浪磁场噪声抑制及海浪磁场噪声的产生附matlab代码
LeetCode每日两题02:轮转数组 (均1200道)
论文笔记:SAITS: SELF-ATTENTION-BASED IMPUTATION FOR TIMESERIES
知识图谱学习笔记——我的第一次知识图谱实践
typescript90-使用类型文件声明类型
The server quit without updating PID file (/usr/local/mysql/data/localhost.pid).
Go-12-结构体
OpenMLDB + Jupyter Notebook:快速搭建机器学习应用
Bugs encountered in remote control projects