今天遇到了一个用python实现四方和的简单计算问题,完成后记录一哈。
直接上代码:
"""
计算四平方和:
请编写一个Python函数f(n),该函数的功能是返回正整数n的最佳分解方案,
若参数n不是正整数,则返回(0, 0, 0, 0)。
例如:
调 用:f(5) 返回值:(0, 0, 1, 2)
调 用:f(12) 返回值:(0, 2, 2, 2)
调 用:f(0) 返回值:(0, 0, 0, 0)
调 用:f("aaa") 返回值:(0, 0, 0, 0)
"""
def f(num):
# 定义几个空列表存放四平方和的元素及结果
a = []
b = []
c = []
d = []
res = []
scope_range = range(0, 9)
# 类型判断,完成功能:若参数n不是正整数,则返回(0, 0, 0, 0)
if type(num) != int:
res.append('无') # 处理程序不进入循环导致的min()函数报错问题
print('(0,0,0,0)')
# 遍历0-9随机数获取四平方和元素
for item in scope_range:
a.append(item)
b.append(item)
c.append(item)
d.append(item)
# 将各元素逐一遍历并获取
for item1 in a:
for item2 in b:
for item3 in c:
for item4 in d:
w = item1
x = item2
y = item3
z = item4
# 进行判断满足条件的元素组合
if w ** 2 + x ** 2 + y ** 2 + z ** 2 == num:
# 将满足条件元素添加到空列表
res.append((w, x, y, z))
# 对满足条件元素做排序取出答案
print('最佳分解方案:', min(res))
由于初学python,代码有点菜,望各位前辈多多指教!!!