①求1- 1/2 +1/3 -1/4+.......+1/99 -1/100之值 ②求n个整数的和(整数由键盘输入) ③比较n个整数大小,求最大值(整数由键盘输入) 要求: 1 第①题至少用三种方法完成
时间: 2024-09-24 18:26:57 浏览: 47
① 求和 1 - 1/2 + 1/3 - 1/4 + ... + 1/99 - 1/100 的值可以用几种方法:
**方法一:循环加减法**
```python
total = 0
sign = 1 # 初始符号为正
for i in range(1, 101, 2): # 只取奇数项
total += sign * (1/i) # 每次加或减当前项
sign *= -1 # 改变符号(从加到减,再到加)
print(total)
```
**方法二:公式计算**
该级数是一个交错级数,其前50项的和可以通过公式求得:
\[ \sum_{k=1}^{50} \frac{(-1)^{k+1}}{k} = H_{50} - \frac{1}{50} \]
其中 \( H_n \) 是第n个调和数,可以直接使用现成库如`math`中的`harmonic_number`计算,然后减去最后一项即可。
```python
import math
# 注意Python的索引是从0开始,所以实际是前50项
total = math.harmonic(50) - 1/100
print(total)
```
**方法三:递归函数**
```python
def alternating_sum(n):
if n == 1:
return 1
else:
return 1 / n + alternating_sum(n - 1) * (-1)
total = alternating_sum(100 // 2) # 取偶数项
print(total)
```
但这种方法效率较低,因为递归会导致大量重复计算。
② 求n个整数的和,可以使用循环接收用户的输入并累加:
```python
n = int(input("请输入要相加的整数个数: "))
total = 0
for _ in range(n):
num = int(input(f"请输入第{i+1}个整数: "))
total += num
print(f"{n}个整数的和是: {total}")
```
这里假设用户输入的是有效整数。
③ 比较n个整数的大小并找到最大值:
```python
n = int(input("请输入整数的数量: "))
numbers = []
for _ in range(n):
number = int(input(f"请输入第{i+1}个整数: "))
numbers.append(number)
max_value = max(numbers)
print(f"这{n}个整数中的最大值是: {max_value}")
```
以上每种方法都演示了如何处理对应的问题,如果有其他疑问,请告诉我。
阅读全文
相关推荐


















