Chainguys 2021-06-24 22:53 采纳率: 93.6%
浏览 20
已采纳

求解"完美平方数需要的n最少问题"代码

"""
完美平方数需要的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))
  • 写回答

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥30 STM32 INMP441无法读取数据
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境