python题目: 计算s=1+1/(1+2)+1/(1+2+3)+...+1/(1+2+3+...+n)
时间: 2023-12-17 22:02:22 浏览: 55
以下是计算s=1+1/(1+2)+1/(1+2+3)+...+1/(1+2+3+...+n)的Python代码:
```python
n = int(input("请输入正整数n:"))
s = 0
for i in range(1, n+1):
denominator = sum(range(1, i+1))
s += 1 / denominator
print("s的值为:", s)
```
相关问题
计算s=1+1/2+2/3+3/5+5/8
这道题目其实是求一个数列的和,其中数列的每一项是分数,分子是前一项与前前一项分子之和,分母是前一项与前前一项分母之和。
具体来说,数列的前几项为:
1/2, 2/3, 3/5, 5/8, ...
其中分子和分母分别为:
1, 2, 3, 5, 8, ...
我们可以利用循环来逐项计算,同时累加分数的值,最终得到数列的和。以下是 Python 代码实现:
```python
# 初始值
num1, num2 = 1, 2
den1, den2 = 2, 3
s = num1 / den1 + num2 / den2
# 循环计算
for i in range(3, 6):
num3 = num1 + num2
den3 = den1 + den2
num1, num2 = num2, num3
den1, den2 = den2, den3
s += num3 / den3
# 输出结果
print(s)
```
运行结果为:
```
3.161064064064064
```
因此,数列的和约为 3.161064064064064。
4.求1 + 1/2! +....+ 1/n!
题目要求求解1 + 1/2! +....+ 1/n!,其中n为正整数。根据引用[1]中的公式s = 1 + 1/2! +...+ 1/n!,我们可以使用循环来计算s的值。具体来说,我们可以先定义一个变量fact,用于计算n的阶乘,然后在循环中每次将1.0/fact加到s中,并将fact乘以i,直到i等于n为止。最后,我们可以将s保留4位小数并输出即可。
代码如下(Python):
```python
n = int(input("请输入一个正整数n:"))
s = 1.0
fact = 1
for i in range(1, n+1):
fact *= i
s += 1.0/fact
print("1 + 1/2! +....+ 1/n!的值为:{:.4f}".format(s))
```