首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    完全平方

    给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, …)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。...队列的这种写法也是很有趣Queue queue = new LinkedList(); 对于这个问题建模: 整个问题转化为一个图论问题,从n到0,每个数字表示一个节点,如果有两个数字x到y相差一个完全平方数...四平方定理: 任何一个正整数都可以表示成不超过四个整数的平方之和。 满足四数平方和定理的数n(这里要满足由四个数构成,小于四个不行), 必定满足 n=4a(8b+7) 或者使用动态规划。...下面我们来用bfs解题,以n=13为例,请看下图13开始,第一遍:距离1X1可以到12节点,距离2X2可以到9节点,距离3X3可以到4节点,距离4X4超过13了肯定到不了0节点;第二遍将跨过jXj完全平方数能到达的点加入已清空的队列...,再广度遍历,遍历到9节点时,发现有距离是完全平方数3X3可以到达0节点。

    41410

    平方根的C语言实现(二) —— 手算平方根的原理

    要说手算平方根,原理其实非常简单,   一是平方根函数是严格单调增函数,   二就是以下这个恒等式满足   (a*N+b)2 ≡ (a*N)2 + 2*a*b*N + b2       ≡ (a*N)2...我们来求5499025的平方根。   ...先将5499025两位两位从低往高排,为   5 49 90 25   2*2<5<3*3   所以最高位为2,   然后我们再来看549的平方根,   我们假设549的平方根的整数部分是2*10+b,...+ b),   464 * 4  < 2090 < 465 * 5   所以b=4,   54990的平方根整数部分为234,   最后再来看5499025的平方根的整数部分,假设为234 * 10...举个例子,我们来算121的平方根,也就是二进制下1111001的平方根。

    2.1K90
    领券