欲买桂花同载酒,荒泷天下第一斗。|

janbar

园龄:4年6个月 粉丝:29 关注:10

2020-09-17 21:11 阅读 579 评论 0 推荐

一个数加100是完全平方数,再加168又是一个完全平方数

1.说明

  1. 暴力法都知道,但是如果起始没弄好会忽略-99这个数
  2. 更优的解法需要好的思路
copy
package main import ( "fmt" "math" ) func main() { /** * 常规解法,暴力找到合适的数 * 因为a>=0 且 b>=0,因此i从-100开始 **/ for i := -100; i < 10000; i++ { a, b := int(math.Sqrt(float64(i+100))), int(math.Sqrt(float64(i+100+168))) if a*a == (i+100) && b*b == (i+100+168) { fmt.Println(i) } } /** * 设要找的数为n则满足如下方程 * A = n+100 = x * x * B = n+100+168 = y * y * 因为B>A,所以可以设y = x+z,z > 0 * 因此B = n+100+168 = (x+z) * (x+z) * B-A 可以推出: 168 = (x+z) * (x+z) - x*x * 最终得出x = 84/z - z/2,因为x > 0,所以0 < z <= 13 * 遍历1<= z <=13,得到x,根据A的等式可得出n = x * x - 100 * 因为用了除法,所以使用浮点数运算,满足条件时z/x/n全是整数 **/ for z := float64(1); z <= 13; z++ { x := 84/z - z/2 if float64(int(x)) == x { fmt.Println(int(x*x - 100)) } } }
posted @   janbar  阅读(579)  评论(0编辑  收藏  举报
编辑推荐:
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~

FAVOURITE

点击右上角即可分享
微信分享提示
*✧⁺˚⁺ପ(๑・ω・)੭ु⁾⁾ 好好学习天天向上
进入亮色模式
进入亮色模式

FAVOURITE