2、编写函数,求出"+1/(1*2)-1/(2*3)+1/(3*4)-1/4*5+…)" 前n项的和,函数以n为参数,它是用户输入的。比如:输入:2 输出:0.33333333 3、编写函数,接收整数参数t,返回斐波那契数列中大于t的第一个数。(递归 迭代) 1 1 2 3 5 8.。。。。 T = 6
时间: 2024-02-27 17:54:51 浏览: 50
1. 求"+1/(1*2)-1/(2*3)+1/(3*4)-1/4*5+…)" 前n项的和
以下是Python语言的实现:
```python
def calc_sum(n):
s = 0
for i in range(1, n + 1):
if i % 2 == 1:
s += 1 / (i * (i+1))
else:
s -= 1 / (i * (i+1))
return s
```
首先定义一个变量`s`,表示和,初始值为0。然后使用`for`循环,对于`1`到`n`之间的每个整数`i`进行如下操作:
- 如果`i`是奇数,那么加上`1/(i*(i+1))`;
- 如果`i`是偶数,那么减去`1/(i*(i+1))`。
最后将和`s`返回即可。
2. 返回斐波那契数列中大于t的第一个数
以下是Python语言的实现:
```python
# 递归实现
def fib(t, a=1, b=1):
if a > t:
return a
else:
return fib(t, b, a+b)
# 迭代实现
def fib(t):
a, b = 1, 1
while a <= t:
a, b = b, a+b
return a
```
第一种实现方式使用递归,定义一个函数`fib`,接收三个参数`t`、`a`和`b`,其中`t`表示要比较的数,`a`和`b`是斐波那契数列中的两个数,初始值为`1`。如果`a`大于`t`,那么返回`a`,否则递归调用`fib`函数,将`b`作为新的`a`,`a+b`作为新的`b`,继续比较。
第二种实现方式使用迭代,定义一个函数`fib`,接收一个参数`t`。使用`while`循环,如果`a`小于等于`t`,那么就将`a`和`b`更新为下一个斐波那契数列中的两个数,直到`a`大于`t`,最后返回`a`。
两种实现方式本质是相同的,只是采用了不同的方法实现。
阅读全文