完全平方指用一个整数乘以自己例如1*1,2*2,3*3等,依此类推。 若一个数能表示成某个整数的平方的形式,则称这个数为完全平方数。 完全平方数是非负数,而一个完全平方数的项有两个

1、题目

一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

2、代码实现

以下是用了比较简单粗暴的方式,当然,如果你是算法比较好或者数学和逻辑思维比较好,肯定是可以优化以下方法的

var index = 0;
var intvalue = 0; //完全平方数未知
for (var i = 1; i < 10000; i++) {intvalue = i;var intvalueNew = intvalue + 100;for (var j = 1; j < 10000; j++) {if (j * j == intvalueNew) {console.log("one:" + intvalueNew);var intvalueNewTwo = intvalueNew + 168;for (var k = 1; k < 10000; k++) {if (k * k == intvalueNewTwo) {console.log("two:" + intvalue);}index += 1;}}else {index += 1;}}
}console.log("计算次数:" + index);

3、效果

一万以内的完全平方数有:21、261、1581

比如:21+100=121=11*11,121+168=289=17*17,同时满足了题目提到的两个条件

思考:如果把这个改为递归方式来计算?

计算方式升级,通过公式的方式,对比上面简单粗暴的方式,就会发现算法是比较有价值的东西

for (var i = 0; i < 100; i++) {var n = 0;if (168 % i == 0) {n = 168 / i;var z = 0, y = 0, x = 0;if (i > n && (i + n) % 2 == 0 && (i - n) % 2 == 0) {z = (i + n) / 2;y = (i - n) / 2;x = y * y - 100;console.log(x);}}
}

只循环了100次,比简单粗暴要循环1亿次的方式,效率高太多了

【小5聊】Html基础之通过for循环和if相结合的方式实现1万内的完全平方数相关推荐

  1. python与数据思维基础笔记_Python小课笔记--Python基础:数据和函数(二)

    截图来自Python小课 文|仟樱雪 在Python小课-1-2节中,已经学习了基础模块--数据--数据类型(整数.字符串),以及基础模块--变量,基础模块--函数(input函数.print函数). ...

  2. 小工匠聊架构文章一览【不间断持续更新】

    文章目录 目标 架构设计 分布式技术-理论篇 分布式实战-分布式事务 分布式实战-分布式服务 分布式实战-分布式缓存 分布式实战-分布式存储 分布式实战-消息队列 分布式实战-分布式高可用 架构进阶之 ...

  3. 小工匠聊架构-超高并发秒杀系统设计 06_数据一致性

    文章目录 Pre 概 减库存分析 方案利弊 下单减库存 付款减库存 预扣库存 大型秒杀中如何减库存 秒杀减库存的优化 Pre 小工匠聊架构-超高并发秒杀系统设计 01_总体原则和架构演进 小工匠聊架构 ...

  4. 小工匠聊架构-超高并发秒杀系统设计 04_流量削峰设计

    文章目录 Pre 概 why how 排队 问答机制 方案设计 分层过滤 总结 Pre 小工匠聊架构-超高并发秒杀系统设计 01_总体原则和架构演进 小工匠聊架构-超高并发秒杀系统设计 02_数据的动 ...

  5. 小工匠聊架构-超高并发秒杀系统设计 03_热点数据的处理

    文章目录 Pre 热点数据 静态热点数据 VS 动态热点数据 发现热点数据 发现静态热点数据 发现动态热点数据 动态热点探测架构 注意事项 处理热点数据 优化 限制 隔离 总结 Pre 小工匠聊架构- ...

  6. .NET Core 小程序开发零基础系列(2)——小程序服务通知(模板消息)

    基于上一篇文件".NET Core 小程序开发零基础系列(1)--开发者启用并校验牵手成功"的反映,个人觉得效果很不错,大家对公众号开发还是有很大需求的,同时也收到了很多同学的问题 ...

  7. 小程序获取头像试试水 02《 程序员变现指南之 微信QQ 小程序 真的零基础开发宝典》

    本系列教程是针对粉丝的变现教程,还不是粉丝的可以关注我并且到社区:https://bbs.csdn.net/topics/603436232 进行打卡,不是老粉的也可以获取最终的技术变现学习,最终还有 ...

  8. 小程序的 HelloWord 01《 程序员变现指南之 微信QQ 小程序 真的零基础开发宝典》

    本系列教程是针对粉丝的变现教程,还不是粉丝的可以关注我并且到社区:https://bbs.csdn.net/topics/603436232 进行打卡,不是老粉的也可以获取最终的技术变现学习,最终还有 ...

  9. 小程序开发入门基础篇-张代浩-专题视频课程

    小程序开发入门基础篇-1995人已学习 课程介绍         采用小程序wepy框架,初级讲解如何搭建小程序的开发环境,创建工程,语法介绍.开发调试等,课程采用实战代码案例作为教材,通俗易懂,简单 ...

最新文章

  1. DeepMind 的新强化学习系统,是迈向通用人工智能的一步吗?
  2. 一首凉凉送给这些学校硕博生!本学期不必返校!这些高校已经发布通知了
  3. nslookup命令dns请求超时_网络工程师之nslookup命令
  4. 【教程】超详细的虚拟无线控制器安装教程
  5. 电脑技巧:电脑安装操作系统、重装系统常见的问题解决方法!
  6. ubuntu 编译mysql_Ubuntu编译MySQL5
  7. TCP/IP笔记-Qt使用Win10pcap发送以太帧(理论与实践)
  8. 软件也要歧视大龄程序员吗?
  9. 【Linux】Linux的信号量集
  10. 利用WinRAR自解压功能制作独立exe 程序
  11. arduino制作AVRISP烧写器
  12. ZT 80-90年代港台300部电视剧 你看过多少?
  13. 测试——web案例思维导图
  14. Unity编辑器扩展——撤回
  15. matlab图像编码实验,数字图像处理实验和matlab程序代码数字图像处理实验.doc
  16. 石子合并问题(no circle)
  17. Eclipse开发环境搭建
  18. IE浏览器故障及其解决方法
  19. Android学习笔记之AndroidManifest.xml文件解析(学习别人的..非原创)
  20. pandas取第一行数据_Pandas DataFrame 取一行数据会得到Series的方法

热门文章

  1. Webpack中resolve配置
  2. 浏览计算机已查找驱动程序软件,魅族魅蓝MX4pro官方固件刷机教程_线刷|救砖教程图解...
  3. 4.5 案例9 使用QVector处理数组
  4. 激活授权文件损坏无法激活解决方案
  5. hdu 5818 Joint Stacks (模拟 技巧)
  6. excel基础操作导入文件
  7. [反重力与飞行]需要精确计算力场的数值
  8. 微信支付 扫码后页面无跳转卡住
  9. 「镁客早报」美国加州法院暂时冻结了贾跃亭在FF中的股权;最迟明年全国将提供手机卡异地销户服务... 1
  10. 使用wireshark分析TLS