LeetCode完全平方数C语言
首先要了解一些数学知识:
1.任何正整数都可以拆分成不超过4个数的平方和 —> 答案只可能是1,2,3,4
2.如果一个数最少可以拆成4个数的平方和,则这个数还满足 n = (4^a)*(8b+7) —> 因此可以先看这个3.数是否满足上述公式,如果不满足,答案就是1,2,3了
4.如果这个数本来就是某个数的平方,那么答案就是1,否则答案就只剩2,3了
5.如果答案是2,即n=a2+b2,那么我们可以枚举a,来验证,如果验证通过则答案是2
否则只能是3
leetcode代码如图
知道数学原理就简
原创
2021-06-10 16:44:27 ·
182 阅读 ·
0 评论