有人能帮我把这几行代码简化为一行吗?请
x = 1.0
a = float(input('Ingrese el valor de a: n'))
for k in range(1, 10):
x = (x + a/x)/2
print(x)
我不知道你在寻找什么,但这段代码使用牛顿方法计算10次迭代的平方根。如果你想计算sqrt:,你可以使用一个线性
print(float(input("Enter a number: "))**0.5)
我认为不可能在一行中执行完全相同的代码,因为您可能需要从functools
导入reduce
,但这至少需要两行。\(ツ)/
这是代码,尽管我认为这类代码在代码高尔夫之外不会有任何用处。
(lambda x, a: print((lambda f: f(x, a, 1, f))(lambda x, a, i, rec: x if i >= 10 else rec((x+a/x)/2, a, i+1, rec))))(1.0, float(input('Ingrese el valor de a: n')))