当前位置:网站首页>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;
}
};
三、运行结果
边栏推荐
- 力扣刷题记录6.1-----203. 移除链表元素
- 历史最全DL相关书籍、课程、视频、论文、数据集、会议、框架和工具整理分享
- 2020.12.4日志
- 数字 01 Vivado2018.2安装及实操
- 电磁辐射安全标准及检测方法
- The most fierce "employee" in history, madly complaining about the billionaire boss Xiao Zha: So rich, he always wears the same clothes!
- 通过安装VNC服务器x11vnc(或vnc4server)和配置x11vnc.service实现远程通过VNC-Viewer访问VNC服务器。
- “蔚来杯“2022牛客暑期多校训练营7,签到题CFGJ
- SQLite切换日志模式优化
- Open3D 点云曲率计算
猜你喜欢
数字 06 verilog_关于异步FIFO
Duplicate class com.google.common.util.concurrent.ListenableFuture found in modules
电磁辐射安全标准及检测方法
etcd实现大规模服务治理应用实战
10.1-----19. Delete the Nth node from the bottom of the linked list
最新工业界推荐系统数据集-召回排序模型原理、结构及代码实战整理分享
接口的安全性测试,应该从哪些方面入手?
【AspNetCore】实现JWT(使用Microsoft.AspNetCore.Authentication.JwtBearer)
Redis - 时间序列数据类型的保存方案和消息队列实现
微信公众号跳转小程序 wx-open-launch-weapp (最全指南及坑)
随机推荐
中国SSD产业突围有多难?除了技术“瓶颈”还有哪里挑战?
D. Tournament Countdown
如何最大限度地减少企业受到供应链攻击的风险
如何在推荐系统中玩转知识图谱
力扣刷题记录10.1-----19. 删除链表的倒数第 N 个结点
最强分布式锁工具:Redisson
物联网未来:未来五年的预期
OJ:L3-001 凑零钱 DFS
Maya engine modeling
Z-Game on grid
力扣刷题记录7.1-----707. 设计链表
力扣刷题记录5.1-----59. 螺旋矩阵 II
Redis系列文章导航
显著性检验--学习笔记
uart_spi练习
HNUMSC-C语言第一课
Likou Brush Question Record 5.1-----59. Spiral Matrix II
17.flink Table Api基础概念讲解
数仓第一篇:基础架构
A40i gxl3680 ts_print报错:tslib: Selected device is not a touchscreen (must support ABS and KEY event