Loading

python实现计算最少完美平方数

目录

1、题目描述 

2、代码实现

3、运行结果


1、题目描述 

给一个正整数 n, 请问最少多少个完全平方数(比如1, 4, 9 ... )的和等于 n。

输入样例①:12
输出样例:3
解释:4+4+4

输入样例②:13
输出样例:2
解释:4+9

2、代码实现

"""
-*- coding:utf-8 -*- 
Author:yang-roc
QQ:327844461
Email:aida_pc@qq.com
Time: 2020/12/29 
"""

def fun(n):
    squares = []
    j = 1
    while j * j <= n:
        squares.append(j * j)
        j += 1
    level = 0
    queue = [n]
    while queue:
        level += 1
        temp = []
        visited = [False] * (n + 1)
        for q in queue:
            for factory in squares:
                if q - factory == 0:
                    return level
                if q - factory < 0:
                    break
                if visited[q - factory]:
                    continue
                temp.append(q - factory)
                visited[q - factory] = True

            queue = temp
    return level


if __name__ == '__main__':
    print(fun(12))
    print(fun(13))

3、运行结果

3
2

 

posted @ 2022-08-01 20:05  Roc-xb  阅读(43)  评论(0)    收藏  举报

易微帮源码


易微帮官网