当前位置:网站首页>Likou Brush Question Record 1.5-----367. Valid perfect squares
Likou Brush Question Record 1.5-----367. Valid perfect squares
2022-08-09 02:27:00 【@baigui】
一、题目
二、代码
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;
//特殊处理:
//Dichotomous approximation also prevents situations where it is the answer itself
if(num==1) bool_return_num=1;
//一般情况
if(bool_return_num==0)
{
//First bisect the square root
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;
}
};
三、运行结果
边栏推荐
- Likou Brush Question Record 5.1-----59. Spiral Matrix II
- 中国SSD产业突围有多难?除了技术“瓶颈”还有哪里挑战?
- 10.1-----19. Delete the Nth node from the bottom of the linked list
- The last exam before the NPDP revision!caution
- 为什么应用程序依赖关系映射对于云迁移至关重要
- 1160. 拼写单词
- Redis - 时间序列数据类型的保存方案和消息队列实现
- Analysis of when AuthenticationSuccessHandler is called after UsernameAuthenticationFilter is authorized successfully
- [LeetCode305周赛] 6136. 算术三元组的数目,6139. 受限条件下可到达节点的数目,6137. 检查数组是否存在有效划分,6138. 最长理想子序列
- <爆>2022中文版-《海外博士申请指南-材料准备、时间线、套磁、面试及录取》免费分享
猜你喜欢
随机推荐
js实现数组去重的方式(7种)
D. Tournament Countdown
力扣刷题记录7.1-----707. 设计链表
带你做接口测试从零到第一条用例 总结
NPDP改版前最后一次考试!请注意
Summary of Database Design
使用JS实现数组扁平化的几种方式
2022年自然语言处理校招社招实习必备知识点盘点分享
微信公众号跳转小程序 wx-open-launch-weapp (最全指南及坑)
gpio子系统和pinctrl子系统(中)
Redis系列文章导航
时间复杂度和空间复杂度
ROS 、SLAM 学习 error整理
composer的使用记录
2020.10.13 Development log
如何保护智能家居避免黑客攻击
gpio子系统和pinctrl子系统(下)
力扣刷题记录3.1-----977. 有序数组的平方
USB 触摸在竖屏时校准
How to play knowledge graph in recommender system