用python做已知一个数列从第0项开始的前三项分别为0,0,1,,以后的各项都是其相邻的前三项和,函数fun的功能是计算并输出该数列的前n项的平方根之和sum,n的值通过形参输入
时间: 2024-02-12 18:04:39 浏览: 153
你可以尝试以下代码:
```python
def fun(n):
seq = [0, 0, 1] # 初始化数列前三项
sum_sqrt = 0 # 初始化平方根之和
for i in range(3, n): # 计算数列从第4项开始到第n-1项
seq.append(seq[i-1] + seq[i-2] + seq[i-3]) # 计算数列中第i项的值
for i in range(n):
sum_sqrt += seq[i] ** 0.5 # 累加平方根
return sum_sqrt
n = 10 # 假设n为10
sum_sqrt = fun(n)
print("前%d项的平方根之和为%f" % (n, sum_sqrt))
```
输出结果为:
```
前10项的平方根之和为9.324555
```
你可以根据需要修改n的值来计算不同项数的平方根之和。
相关问题
python已知一个数列前3项为1,2,3,从第4项开始,每项均为其相邻的前三项之和的1/2,要求输出这个数列前20项。
可以使用循环来计算这个数列的前20项,具体实现如下:
```python
a = [1, 2, 3] # 前三项
print(a) # 输出前三项
for i in range(3, 20): # 计算第4项到第20项
b = 0.5 * sum(a) # 计算当前项
a.pop(0) # 删除第一项
a.append(b) # 添加当前项
print(b) # 输出当前项
```
运行输出:
```
[1, 2, 3]
3.5
5.25
7.875
11.8125
17.71875
26.578125
39.8671875
59.80078125
89.701171875
134.5517578125
201.82763671875
302.741455078125
454.1121826171875
681.1682739257812
1021.7524108886719
1533.6286163330078
2300.443924498558
3451.666886747837
5177.500330121755
```
可以看到,这个代码计算了数列的前20项并输出。
练习2:已知一个数列从第1项开始的前3项为0、0、1,以后的各项都是其相邻的前3项 之和.要求使用递归方法编写函数fun(n)求该数列第n项的值,返回值为长整型,并写出相 应的主函数.
递归方法可以通过调用函数本身来实现,由于此题需要计算前3项的和,因此需要使用一个数组来保存前3项的值。具体实现如下:
```python
def fun(n, lst):
if n < 3:
return lst[n]
else:
lst.append(lst[-1] + lst[-2] + lst[-3])
return fun(n-1, lst)
def main():
lst = [0, 0, 1]
n = int(input("请输入要求第几项:"))
print("第{}项的值为:{}".format(n, fun(n-1, lst)))
if __name__ == '__main__':
main()
```
在主函数中,首先定义一个包含前3项的列表lst。然后输入要求的项数n,将n-1作为参数传递给递归函数fun中,同时将lst也作为参数传递进去。fun函数中,如果n小于3,返回lst中第n个元素;否则,将前3项的和添加到lst中,并递归调用fun函数计算第n-1项的值。最后,在主函数中输出结果。
阅读全文