"""
完美平方数需要的n最小
问题:给定一个正整数n,找到若干完全平方数,使得他们和为n且需要的完全平方数最小
数学思路:
四平方和定理:每个正整数都可以表示为至多4个正整数的平方和。故该题答案为1,2,3或4.
该数 n 若能整除4,则 n /= 4,结果不影响。【化简】
如果一个数除以8余7的话,那么肯定是由4个完全平方数组成。return 4
将其拆为两个平方数之和,如果拆成功了那么就会返回1或2,因为其中一个平方数可能为0,故判断拆的两个数是否为正整数
"""
class Solution:
def ssr(self, n): #1.为什么定义对象不写__init__?
while n % 4 == 0:
n //= 4 # 这段是个什么意思,放这里干啥?到处查都没查到//=(注意//和=之间无空格)的含义,也不明白这里加在这里干啥?
if n % 8 == 7:
return 4
for i in range(n + 1):
temp = i * i
if temp <= n:
if int((n - temp) ** 0.5) ** 2 + temp == n:
return 1 + (0 if temp == 0 else 1)
else:
break
return 3
if __name__ == '__main__':
n = 12
print("初始值:",n)
solution = Solution()
print("结果:", solution.ssr(n))
求解"完美平方数需要的n最少问题"代码
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 小P聊技术 2021-06-25 20:36关注
n // = 4
n = n // 4
表示n除以4的结果向下取整
python对类和对象,self,init的理解(内含实例解释): https://blog.csdn.net/m0_51078229/article/details/111500368
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 素材场景中光线烘焙后灯光失效
- ¥15 请教一下各位,为什么我这个没有实现模拟点击
- ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
- ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
- ¥20 有关区间dp的问题求解
- ¥15 多电路系统共用电源的串扰问题
- ¥15 slam rangenet++配置
- ¥15 有没有研究水声通信方面的帮我改俩matlab代码
- ¥15 ubuntu子系统密码忘记
- ¥15 保护模式-系统加载-段寄存器