递归、递推、lambdla函数 题目:计算表达式,x由用户通过键盘输入,要求精 确到。 要求:以上表达式要求用递归、递推和Lambda三种方式编写power(n,x)函数。
时间: 2023-11-28 21:47:50 浏览: 68
递归方式:
```python
def power_recursive(n, x):
if n == 0:
return 1
elif n % 2 == 0:
return power_recursive(n/2, x)**2
else:
return x * power_recursive(n-1, x)
x = float(input("请输入x的值:"))
n = int(input("请输入幂次n的值:"))
result = power_recursive(n, x)
print(f"{x}的{n}次幂为{result:.5f}")
```
递推方式:
```python
def power_iterative(n, x):
result = 1
while n > 0:
if n % 2 == 1:
result *= x
x *= x
n //= 2
return result
x = float(input("请输入x的值:"))
n = int(input("请输入幂次n的值:"))
result = power_iterative(n, x)
print(f"{x}的{n}次幂为{result:.5f}")
```
Lambda函数方式:
```python
power_lambda = lambda n, x: x**n
x = float(input("请输入x的值:"))
n = int(input("请输入幂次n的值:"))
result = power_lambda(n, x)
print(f"{x}的{n}次幂为{result:.5f}")
```
阅读全文