Python如何计算一个正整数n所需的最少完全平方数个数?

2026-05-21 15:241阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计411个文字,预计阅读时间需要2分钟。

Python如何计算一个正整数n所需的最少完全平方数个数?

目录

1.主题描述

2.代码实现

3.运行结果

1.主题描述

给定一个正整数n,请计算并输出最小的完整平方数之和,使得这些平方数的和等于n。

2. 代码实现pythondef min_square_sum(n): result=0 i=1 while n > 0: result +=i * i n -=i * i i +=1 return result

Python如何计算一个正整数n所需的最少完全平方数个数?

示例输入n=12

输出结果print(min_square_sum(n))

3. 运行结果示例输入:12输出结果:13


目录

​​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

本文共计411个文字,预计阅读时间需要2分钟。

Python如何计算一个正整数n所需的最少完全平方数个数?

目录

1.主题描述

2.代码实现

3.运行结果

1.主题描述

给定一个正整数n,请计算并输出最小的完整平方数之和,使得这些平方数的和等于n。

2. 代码实现pythondef min_square_sum(n): result=0 i=1 while n > 0: result +=i * i n -=i * i i +=1 return result

Python如何计算一个正整数n所需的最少完全平方数个数?

示例输入n=12

输出结果print(min_square_sum(n))

3. 运行结果示例输入:12输出结果:13


目录

​​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